add shellquote utility function
authorDietmar Maurer <dietmar@proxmox.com>
Tue, 25 Oct 2011 09:36:28 +0000 (11:36 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Tue, 25 Oct 2011 09:36:28 +0000 (11:36 +0200)
data/PVE/Tools.pm

index 4c4e259..78d7b9f 100644 (file)
@@ -687,4 +687,26 @@ sub random_ether_addr {
     return $mac;
 }
 
     return $mac;
 }
 
+sub shellquote {
+    my $str = shift;
+
+    return "''" if !defined ($str) || ($str eq '');
+    
+    die "unable to quote string containing null (\\000) bytes"
+       if $str =~ m/\x00/;
+
+    # from String::ShellQuote
+    if ($str =~ m|[^\w!%+,\-./:@^]|) {
+
+       # ' -> '\''
+       $str =~ s/'/'\\''/g;
+
+       $str = "'$str'";
+       $str =~ s/^''//;
+       $str =~ s/''$//;
+    }
+
+    return $str;
+}
+
 1;
 1;