From 2e83b63adaf8acfa9a25c2e169525e1c5534f437 Mon Sep 17 00:00:00 2001 From: Pascal Rigaux Date: Fri, 26 Jul 2002 17:03:10 +0000 Subject: - also give the ability to redirect to an array ref - add rooted_get_stdout which is alike `` --- perl-install/run_program.pm | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'perl-install/run_program.pm') diff --git a/perl-install/run_program.pm b/perl-install/run_program.pm index a0d5c98dc..a50f31f0a 100644 --- a/perl-install/run_program.pm +++ b/perl-install/run_program.pm @@ -16,6 +16,13 @@ sub rooted_or_die { my ($root, $name, @args) = @_; rooted($root, $name, @args) or die "$name failed\n"; } +sub rooted_get_stdout { + my ($root, $name, @args) = @_; + my @r; + rooted($root, $name, '>', \@r, @args) or return; + @r; +} + sub run { rooted('', @_) } sub rooted { @@ -41,11 +48,19 @@ sub rooted { waitpid $pid, 0; $? == 0 or return; if ($stdout_raw && ref($stdout_raw)) { - $$stdout_raw = cat_($stdout); + if (ref($stdout_raw) eq 'ARRAY') { + @$stdout_raw = cat_($stdout); + } else { + $$stdout_raw = cat_($stdout); + } unlink $stdout; } if ($stderr_raw && ref($stderr_raw)) { - $$stderr_raw = cat_($stderr); + if (ref($stderr_raw) eq 'ARRAY') { + @$stderr_raw = cat_($stderr); + } else { + $$stderr_raw = cat_($stderr); + } unlink $stderr; } 1; -- cgit v1.2.1