diff options
author | pad <pad@mandriva.com> | 1999-09-14 14:50:50 +0000 |
---|---|---|
committer | pad <pad@mandriva.com> | 1999-09-14 14:50:50 +0000 |
commit | 0aa7a9e98c3b51085c87aa13d61eef8e3f694626 (patch) | |
tree | 06c3462cb7af3adb37d3a4606dd43d2604b88eec /perl-install/run_program.pm | |
parent | 951e65ef820631665dbeddf6cfb43afce034efb9 (diff) | |
download | drakx-0aa7a9e98c3b51085c87aa13d61eef8e3f694626.tar drakx-0aa7a9e98c3b51085c87aa13d61eef8e3f694626.tar.gz drakx-0aa7a9e98c3b51085c87aa13d61eef8e3f694626.tar.bz2 drakx-0aa7a9e98c3b51085c87aa13d61eef8e3f694626.tar.xz drakx-0aa7a9e98c3b51085c87aa13d61eef8e3f694626.zip |
*** empty log message ***
Diffstat (limited to 'perl-install/run_program.pm')
-rw-r--r-- | perl-install/run_program.pm | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/perl-install/run_program.pm b/perl-install/run_program.pm index 15394a1be..617c6ebd5 100644 --- a/perl-install/run_program.pm +++ b/perl-install/run_program.pm @@ -11,8 +11,8 @@ sub run($@) { rooted('', @_) } sub rooted { my ($root, $name, @args) = @_; - - log::l("running: $name @args" . ($root ? " with root $root" : "")); + my $str = ref $name ? $name->[0] : $name; + log::l("running: $str @args" . ($root ? " with root $root" : "")); $root ? $root .= '/' : ($root = ''); fork and wait, return $? == 0; @@ -25,9 +25,18 @@ sub rooted { $root and chroot $root; chdir "/"; - unless (exec $name, @args) { - log::l("exec of $name failed: $!"); - exec('false') or exit(1); + if (ref $name) { + unless (exec { $name->[0] } $name->[1], @args) { + log::l("exec of $name->[0] failed: $!"); + exec('false') or exit(1); + } + } else { + unless (exec $name, @args) { + log::l("exec of $name failed: $!"); + exec('false') or exit(1); + } + } } + } |