diff options
Diffstat (limited to 'sboupgrade')
-rwxr-xr-x | sboupgrade | 43 |
1 files changed, 10 insertions, 33 deletions
@@ -54,9 +54,8 @@ my $only_new = exists $options{o} ? 'TRUE' : 'FALSE'; my $compat32 = exists $options{p} ? 'TRUE' : 'FALSE'; if (exists $options{j}) { - unless ($options{j} =~ /^\d+$/ || $options{j} eq 'FALSE') { - die "You have provided an invalid parameter for -j\n"; - } + die "You have provided an invalid parameter for -j\n" unless + ($options{j} =~ /^\d+$/ || $options{j} eq 'FALSE'); } my $jobs = exists $options{j} ? $options{j} : $config{JOBS}; @@ -70,9 +69,8 @@ slackbuilds_or_fetch (); my %locations; for my $sbo_name (@ARGV) { $locations{$sbo_name} = get_sbo_location ($sbo_name); - unless (defined $locations{$sbo_name}) { - die "Unable to locate $sbo_name in the SlackBuilds.org tree.\n"; - } + die "Unable to locate $sbo_name in the SlackBuilds.org tree.\n" unless + (defined $locations{$sbo_name}); } sub get_readme_path { @@ -94,7 +92,7 @@ sub grok_readme { $readme =~ s/\n\n/./g; $readme =~ s/\n//g; my $string = $4 if $readme =~ - /([Tt]his|$sbo|)\s+[Rr]equire(s|)(|:)\s+([^\.]+)/; + /([Tt]his|\Q$sbo\E|)\s+[Rr]equire(s|)(|:)\s+([^\.]+)/; return unless defined $string; # remove anything in brackets or parens $string =~ s/(\s)*\[[^\]]+\](\s)*//g; @@ -110,24 +108,8 @@ sub grok_readme { } splice (@deps, $remove, 1) if defined $remove; return unless exists $deps[0]; - # check each parsed requirement against installed slackbuilds - my @installed = get_installed_sbos (); - my @needed; - my @have; - FIRST: for my $dep (@deps) { - SECOND: for my $key (keys @installed) { - my $tempname = $compat32 eq 'TRUE' ? "$dep-compat32" : $dep; - if ($tempname eq $installed[$key]{name}) { - push (@have, $dep); - last SECOND; - } - } - } - for my $dep (@deps) { - push (@needed, $dep) unless $dep ~~ @have; - } FIRST: for my $need (@needed) { - # compare against installed slackbuilds again, since we're recursive + # compare against installed slackbuilds my $tempname = $compat32 eq 'TRUE' ? "$need-compat32" : $need; my @inst = get_installed_sbos (); SECOND: for my $key (keys @inst) { @@ -146,7 +128,7 @@ sub grok_readme { push (@args, "-d") if exists $options{d}; push (@args, "-j $options{j}") if exists $options{j}; push (@args, "-p") if $compat32 eq 'TRUE'; - push (@args, "$need"); + push (@args, $need); system ($cmd, @args); } } @@ -178,15 +160,12 @@ sub process_sbos { for my $sbo (@todo) { readme_prompt ($sbo) unless $no_readme eq 'TRUE'; # switch compat32 on if upgrading a -compat32 - # this should maybe happen not in this sub? $compat32 = 'TRUE' if $sbo =~ /-compat32$/; my $version; my $pkg; my $src; - eval { - ($version, $pkg, $src) = do_slackbuild - ($jobs, $sbo, $locations{$sbo}, $compat32); - }; + eval { ($version, $pkg, $src) = do_slackbuild + ($jobs, $sbo, $locations{$sbo}, $compat32); }; if ($@) { push (@failures, $sbo); } else { @@ -242,9 +221,7 @@ unless ($only_new eq 'TRUE') { # but without force, we only want to update what there are updates for unless ($force eq 'TRUE') { for my $sbo (@ARGV) { - if ($sbo ~~ @updates) { - push (@todo_upgrade, $sbo); - } + push (@todo_upgrade, $sbo) if $sbo ~~ @updates; } } else { FIRST: for my $sbo (@ARGV) { |