diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2018-01-27 16:26:26 +0100 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2018-01-27 16:28:55 +0100 |
commit | 37d12a7a5f1b0160abb6f87d8d04acc517658f65 (patch) | |
tree | 554c5d559f9bef6cae7af063ebda086ff798effb /slackbuilder | |
parent | 17b5bf548a58233f4f106ad88c9b191722cc33a3 (diff) | |
download | slackbuilder-37d12a7a5f1b0160abb6f87d8d04acc517658f65.tar.gz slackbuilder-37d12a7a5f1b0160abb6f87d8d04acc517658f65.tar.bz2 |
Fix prerequisite search
* lib/SlackBuild/Archive.pm: Add changes pertaining to 17b5bf54.
* slackbuilder: Likewise.
* lib/SlackBuilder.pm: Likewise.
(new): Don't use host's uname to get architecture name.
(ospkgdir,os_release,os_probe): New methods.
Diffstat (limited to 'slackbuilder')
-rw-r--r-- | slackbuilder | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/slackbuilder b/slackbuilder index c987d54..bf4c081 100644 --- a/slackbuilder +++ b/slackbuilder @@ -1,7 +1,6 @@ # -*- perl -*- use strict; use warnings; -use JSON; use Data::Dumper; use Pod::Usage; use Pod::Man; @@ -9,6 +8,8 @@ use Getopt::Long qw(:config gnu_getopt no_ignore_case); use File::Basename; use Unix::Sysexits; use SlackBuilder; +use SlackBuild::Request; +use JSON; use constant { EX_FAIL => 1 @@ -38,7 +39,7 @@ sub readfile { open(my $fd, $file) or abend(EX_NOINPUT, "can't open file $file: $!"); my $string = <$fd>; close $fd; - return $string; + return decode_json($string); } my %sbargs; @@ -58,11 +59,22 @@ GetOptions("h" => sub { ) or exit(EX_USAGE); abend(EX_USAGE, "bad number of arguments") unless @ARGV == 1; +my $reqname = shift @ARGV; +my $req; -my $text = readfile($ARGV[0]); +unless (-f $reqname) { + if ($reqname =~ m{(?:http|ftp)s?://.*/ + (.+?) \.tar(?:\.(?:[xgl]z|bz2))?}x) { + $req = { package => $1, slackbuild_uri => $reqname }; + } else { + abend(EX_NOINPUT, "request file $reqname does not exist"); + } +} else { + $req = readfile($reqname); +} my $builder = new SlackBuilder(%sbargs); -$builder->run(decode_json($text)); +$builder->run(new SlackBuild::Request($req)); if ($builder->is_success) { if ($builder->output_files == 0) { print STDERR "Build exited successfully, but no output files were generated\n"; |