[pve-devel] run_command and shellquote
    Michael Rasmussen 
    mir at datanom.net
       
    Tue Nov  4 17:47:25 CET 2014
    
    
  
On Tue, 4 Nov 2014 06:08:57 +0000
Dietmar Maurer <dietmar at proxmox.com> wrote:
> 
> Beside, we do not quote anything. The $cmd array is directly passed top open3():
> 
>     $pid = open3($writer, $reader, $error, @$cmd) || die $!;
> 
> So I cannot reproduce what you talk about.
> 
From PVE::Tools
sub shellquote {
    my $str = shift;
    return String::ShellQuote::shell_quote($str);
}
sub cmd2string {
    my ($cmd) = @_;
    die "no arguments" if !$cmd;
    return $cmd if !ref($cmd);
    my @qa = ();
    foreach my $arg (@$cmd) { push @qa, shellquote($arg); }
    return join (' ', @qa);
}
sub run_command {
    my ($cmd, %param) = @_;
    my $old_umask;
    my $cmdstr;
    if (!ref($cmd)) {
        $cmdstr = $cmd;
        if ($cmd =~ m/|/) {
            # see 'man bash' for option pipefail
            $cmd = [ '/bin/bash', '-c', "set -o pipefail && $cmd" ];
        } else {
            $cmd = [ $cmd ];
        }
    } else {
        $cmdstr = cmd2string($cmd);
    }
-- 
Hilsen/Regards
Michael Rasmussen
Get my public GnuPG keys:
michael <at> rasmussen <dot> cc
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xD3C9A00E
mir <at> datanom <dot> net
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xE501F51C
mir <at> miras <dot> org
http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xE3E80917
--------------------------------------------------------------
/usr/games/fortune -es says:
Do what thou wilt shall be the whole of the Law.
		-- Aleister Crowley
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 181 bytes
Desc: OpenPGP digital signature
URL: <http://lists.proxmox.com/pipermail/pve-devel/attachments/20141104/9cb89937/attachment.sig>
    
    
More information about the pve-devel
mailing list