[pve-devel] [RFC common v2] run_command: add 'quiet' parameter for omitting STD* prints
Thomas Lamprecht
t.lamprecht at proxmox.com
Tue Dec 19 11:50:16 CET 2017
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 at proxmox.com>
---
changes v1 -> v2:
* s/quite/quiet/ sorry for the noice and thanks emmanuel for catching...
src/PVE/Tools.pm | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/PVE/Tools.pm b/src/PVE/Tools.pm
index 7efd0dd..b34c8b7 100644
--- a/src/PVE/Tools.pm
+++ b/src/PVE/Tools.pm
@@ -369,6 +369,7 @@ sub run_command {
my $afterfork;
my $noerr;
my $keeplocale;
+ my $quite;
eval {
@@ -395,6 +396,8 @@ sub run_command {
$noerr = $param{$p};
} elsif ($p eq 'keeplocale') {
$keeplocale = $param{$p};
+ } elsif ($p eq 'quite') {
+ $quite = $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 (!$quite) {
print $buf;
*STDOUT->flush();
}
@@ -517,7 +520,7 @@ sub run_command {
waitpid ($pid, 0);
die $err;
}
- } else {
+ } elsif (!$quite) {
print STDERR $buf;
*STDERR->flush();
}
--
2.11.0
More information about the pve-devel
mailing list