diff options
author | Jacob Pipkin <j@dawnrazor.net> | 2012-08-31 08:00:07 -0500 |
---|---|---|
committer | Jacob Pipkin <j@dawnrazor.net> | 2012-08-31 08:00:07 -0500 |
commit | 12a1c8c4530ddb9ab83fec1f9b5bf61a25764e6b (patch) | |
tree | e8ba7c96b89aa3e147c6d7d94f65e8d35bff69d8 /sboupgrade | |
parent | f8c22cc9dd4828416555f0081c154a6adff9e80b (diff) | |
download | sbotools2-12a1c8c4530ddb9ab83fec1f9b5bf61a25764e6b.tar.xz |
better testing, more still to come
Diffstat (limited to 'sboupgrade')
-rwxr-xr-x | sboupgrade | 17 |
1 files changed, 13 insertions, 4 deletions
@@ -101,20 +101,29 @@ sub grok_requirements ($$$) { my ($sbo, $location, $readme) = @_; my $requires = get_from_info (LOCATION => $location, GET => 'REQUIRES'); return unless $$requires[0]; + # do nothing if a req list contains %README% + return if '%README%' ~~ @$requires; + # do nothing if there's a circular requirement + FIRST: for my $req (@$requires) { + my $req_req = get_from_info (LOCATION => get_sbo_location $req, + GET => 'REQUIRES'); + return if $sbo ~~ @$req_req; + } + # else proceed for my $req (@$requires) { my $inst = get_installed_sbos; - my $inst_names= get_inst_names $inst;; + my $inst_names= get_inst_names $inst; unless ($req ~~ @$inst_names) { say $readme; say "$sbo has $req listed as a requirement."; print "Shall I attempt to install it first? [y] "; if (<STDIN> =~ /^[Yy\n]/) { - my @cmd = ('/usr/sbin/sboupgrade', '-oN', $req); - system (@cmd) == 0 or die "$req failed to install.\n"; + system ('/usr/sbin/sboupgrade', '-oN', $req) == 0 or + die "$req failed to install.\n"; } } } - return 1; + return; } # look for any (user|group)add commands in the README |