5
0
mirror of git://git.proxmox.com/git/pve-common.git synced 2025-08-29 09:49:33 +03:00

run_command: add 'quiet' parameter for omitting STD* prints

Without this patch we printed to STDOUT and STDERR, respectively, if
no $outfunc or $errfunc was passed.

Sometimes it's useful if one, or even both, of those prints can
be suppressed, currently this can only be done by either using an array
of arrays or a whole string for the command and redirecting STDOUT
and STDERR.

Add a 'quiet' option which allows to do this in an easier way.
It allows to silent STDERR or STDOUT or both.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
Thomas Lamprecht
2017-12-19 11:50:16 +01:00
committed by Wolfgang Bumiller
parent 3e2da21600
commit ed61b9d675

View File

@ -369,6 +369,7 @@ sub run_command {
my $afterfork;
my $noerr;
my $keeplocale;
my $quiet;
eval {
@ -395,6 +396,8 @@ sub run_command {
$noerr = $param{$p};
} elsif ($p eq 'keeplocale') {
$keeplocale = $param{$p};
} elsif ($p eq 'quiet') {
$quiet = $param{$p};
} else {
die "got unknown parameter '$p' for run_command\n";
}
@ -497,7 +500,7 @@ sub run_command {
waitpid ($pid, 0);
die $err;
}
} else {
} elsif (!$quiet) {
print $buf;
*STDOUT->flush();
}
@ -517,7 +520,7 @@ sub run_command {
waitpid ($pid, 0);
die $err;
}
} else {
} elsif (!$quiet) {
print STDERR $buf;
*STDERR->flush();
}