diff options
-rw-r--r-- | SBO-Lib/lib/SBO/Lib.pm | 17 | ||||
-rwxr-xr-x | sboupgrade | 39 |
2 files changed, 29 insertions, 27 deletions
diff --git a/SBO-Lib/lib/SBO/Lib.pm b/SBO-Lib/lib/SBO/Lib.pm index 31358f0..6b45b98 100644 --- a/SBO-Lib/lib/SBO/Lib.pm +++ b/SBO-Lib/lib/SBO/Lib.pm @@ -338,18 +338,19 @@ sub compute_md5sum { sub get_filename_from_link { script_error ('get_filename_from_link requires an argument') unless exists $_[0]; - my @split = split ('/',reverse ($_[0]) ,2); + my @split = split ('/',reverse (shift) ,2); chomp (my $filename = $distfiles .'/'. reverse ($split[0]) ); return $filename; } sub check_distfile { - script_error ('check_distfile requires an argument.') unless exists $_[0]; - my $filename = get_filename_from_link ($_[0]); + script_error ('check_distfile requires two arguments.') unless exists $_[1]; + my ($link,$info_md5sum) = @_; + my $filename = get_filename_from_link ($link); return unless -d $distfiles; return unless -f $filename; my $md5sum = compute_md5sum ($filename); - return unless $_[1] eq $md5sum; + return unless $info_md5sum eq $md5sum; return 1; } @@ -469,14 +470,14 @@ sub make_clean { } sub make_distclean { - script_error ('make_distclean requires two arguments.') - unless exists $_[1]; + script_error ('make_distclean requires three arguments.') + unless exists $_[2]; my ($sbo,$version,$location) = @_; make_clean ($sbo,$version); print "Distcleaning for $sbo-$version...\n"; my @downloads = get_sbo_downloads ($sbo,$location); - for my $dl (@downloads) { - my $filename = get_filename_from_link ($dl); + for my $c (keys @downloads) { + my $filename = get_filename_from_link ($downloads[$c]{link}); unlink ($filename) if -f $filename; } return 1; @@ -142,7 +142,7 @@ sub print_failures { if (exists $failed[0]) { print "Failures:\n"; print " $_\n" for (@failed); - exit (1); + exit 1; } } @@ -177,25 +177,26 @@ unless ($only_new eq 'TRUE') { print_failures () unless $install_new eq 'TRUE'; } -my @todo_install; -my $has = 'FALSE'; -for (@ARGV) { - SECOND: for my $index (keys @installed) { - if ($_ eq $installed[$index]{name}) { - $has = 'TRUE'; - last SECOND; +if ($install_new eq 'TRUE') { + my @todo_install; + my $has = 'FALSE'; + for (@ARGV) { + SECOND: for my $index (keys @installed) { + if ($_ eq $installed[$index]{name}) { + $has = 'TRUE'; + last SECOND; + } } + unless ($has eq 'TRUE') { + push (@todo_install,$_); + } else { + print "$_ already installed.\n"; + } + $has = 'FALSE'; } - unless ($has eq 'TRUE') { - push (@todo_install,$_); - } else { - print "$_ already installed.\n"; - } - $has = 'FALSE'; -} -@failed = process_sbos (@todo_install) if exists $todo_install[0]; - -print_failures (); + @failed = process_sbos (@todo_install) if exists $todo_install[0]; + print_failures (); +} -exit (0); +exit 0; |