diff --git a/lib/utils/__init__.py b/lib/utils/__init__.py index e69de29b..c50c88ce 100644 --- a/lib/utils/__init__.py +++ b/lib/utils/__init__.py @@ -0,0 +1,24 @@ +import re + +def __init__(): + pass + +def QuoteForPOSIX(string): + '''quote a string so it can be used as an argument in a posix shell + + According to: http://www.unix.org/single_unix_specification/ + 2.2.1 Escape Character (Backslash) + + A backslash that is not quoted shall preserve the literal value + of the following character, with the exception of a . + + 2.2.2 Single-Quotes + + Enclosing characters in single-quotes ( '' ) shall preserve + the literal value of each character within the single-quotes. + A single-quote cannot occur within single-quotes. + + source : http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/498202 + ''' + + return "\\'".join(["'" + p + "'" for p in string.split("'")])