diff options
Diffstat (limited to 'sboupgrade')
| -rwxr-xr-x | sboupgrade | 34 | 
1 files changed, 23 insertions, 11 deletions
@@ -113,25 +113,32 @@ sub get_requires ($$) {  }  # ask to install any requirements found -sub ask_requires ($$$) { -	exists $_[2] or script_error 'ask_requires requires three arguments.'; -	my ($requires, $readme, $sbo) = shift; -	FIRST: for my $req (@$requires) { +sub ask_requires (%) { +	my %args = ( +		REQUIRES	=> '', +		README		=> '', +		SBO			=> '', +		@_ +	); +	unless ($args{REQUIRES} && $args{README} && $args{SBO}) { +		script_error 'ask_requires requires three arguments.'; +	} +	FIRST: for my $req (@{$args{REQUIRES}}) {  		my $name = $compat32 ? "$req-compat32" : $req;  		my $inst = get_installed_sbos;  		my $inst_names = get_inst_names $inst;  		next FIRST if $name ~~ @$inst_names; -		say $readme; -		say "$sbo has $name listed as a requirement."; +		say $args{README}; +		say "$args{SBO} has $name listed as a requirement.";  		print "Shall I attempt to install it first? [y] ";  		if (<STDIN> =~ /^[Yy\n]/) { -			my @args = ('/usr/sbin/sboupgrade', '-oN'); +			my @cmd_args = ('/usr/sbin/sboupgrade', '-oN');  			# populate args so that they carry over correctly  			for my $arg (qw(c d p)) { -				push @args, "-$arg" if exists $options{$arg}; +				push @cmd_args, "-$arg" if exists $options{$arg};  			} -			push @args, "-j $options{j}" if exists $options{j}; -			system (@args, $req) == 0 or die "$name failed to install.\n"; +			push @cmd_args, "-j $options{j}" if exists $options{j}; +			system (@cmd_args, $req) == 0 or die "$name failed to install.\n";  		}  	}  	return; @@ -321,7 +328,12 @@ FIRST: for my $sbo (@ARGV) {  			print " yet installed. Shall I install it first? [y] ";  			if (<STDIN> =~ /^[Yy\n]/) {  				my @args = ('/usr/sbin/sboupgrade', '-oN', $sbo); -				system (@args) == 0 or exit 1; +				# populate args so that they carry over correctly +				for my $arg (qw(c d)) { +					push @args, "-$arg" if exists $options{$arg}; +				} +				push @args, "-j $options{j}" if exists $options{j}; +				system (@args) == 0 or die "$sbo failed to install.\n";  			} else {  				warn "Please install $sbo\n" and exit 0;  			}  | 
