]> git.proxmox.com Git - pve-installer.git/commitdiff
sys: command: add option to not print process output to stdout
authorChristoph Heiss <c.heiss@proxmox.com>
Tue, 13 Feb 2024 15:14:02 +0000 (16:14 +0100)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Fri, 23 Feb 2024 13:19:56 +0000 (14:19 +0100)
If $noprint is set, the output of the command won't be printed to stdout
of the parent process.

Fully backwards-compatible again, only takes effect if the new argument
is actually specified.

Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
Proxmox/Sys/Command.pm

index 36e99c158df48fbf146b788cefc37085df62795e..d145483d7301385d661d684c1b73b9bb7714c1a5 100644 (file)
@@ -85,8 +85,9 @@ sub syscmd {
 #           to exit early and ignore the rest of the process output.
 # * $input - Stdin contents for the spawned subprocess
 # * $noout - Whether to append any process output to the return value
+# * $noprint - Whether to print any process output to the parents stdout
 sub run_command {
-    my ($cmd, $func, $input, $noout) = @_;
+    my ($cmd, $func, $input, $noout, $noprint) = @_;
 
     my $cmdstr;
     if (!ref($cmd)) {
@@ -178,7 +179,7 @@ sub run_command {
            } elsif ($h eq $error) {
                $ostream .= $buf if !($noout || $func);
            }
-           print $buf;
+           print $buf if !$noprint;
            STDOUT->flush();
            log_info($buf);
        }