my $oldtimeout;
my $pid;
+ my $outfunc;
+ my $errfunc;
+ my $logfunc;
+ my $input;
+ my $output;
+
eval {
- my $input;
- my $output;
- my $outfunc;
- my $errfunc;
- my $logfunc;
foreach my $p (keys %param) {
if ($p eq 'timeout') {
umask($param{$p});
} elsif ($p eq 'errmsg') {
$errmsg = $param{$p};
- $errfunc = sub {
- print STDERR "$laststderr\n" if $laststderr;
- $laststderr = shift;
- };
} elsif ($p eq 'input') {
$input = $param{$p};
} elsif ($p eq 'output') {
}
}
+ if ($errmsg) {
+ my $origerrfunc = $errfunc;
+ $errfunc = sub {
+ if ($laststderr) {
+ if ($origerrfunc) {
+ &$origerrfunc("$laststderr\n");
+ } else {
+ print STDERR "$laststderr\n" if $laststderr;
+ }
+ }
+ $laststderr = shift;
+ };
+ }
+
my $reader = $output && $output =~ m/^>&/ ? $output : IO::File->new();
my $writer = $input && $input =~ m/^<&/ ? $input : IO::File->new();
my $error = IO::File->new();
alarm(0);
- print STDERR "$laststderr\n" if $laststderr;
+ if ($errmsg && $laststderr) {
+ &$errfunc(undef); # flush laststderr
+ }
umask ($old_umask) if defined($old_umask);
+libpve-common-perl (1.0-9) unstable; urgency=low
+
+ * bug fixes for run_command()
+
+ -- Proxmox Support Team <support@proxmox.com> Fri, 02 Dec 2011 10:28:27 +0100
+
libpve-common-perl (1.0-8) unstable; urgency=low
* make cli argument parser more flexible