shell quoting fixes

(edited author's original commit comment -- MPD)
This commit is contained in:
Matthew Williams 2012-03-30 09:18:10 -07:00 committed by Michael DeHaan
parent 99d5796605
commit ec6f488d1f
2 changed files with 11 additions and 4 deletions

View file

@ -293,7 +293,7 @@ class PlayBook(object):
async_seconds = int(task.get('async', 0)) # not async by default
async_poll_interval = int(task.get('poll', 10)) # default poll = 10 seconds
tokens = shlex.split(action)
tokens = shlex.split(action, posix=False)
module_name = tokens[0]
module_args = tokens[1:]

View file

@ -260,12 +260,19 @@ def parse_yaml_from_file(path):
raise errors.AnsibleError("file not found: %s" % path)
return parse_yaml(data)
def parse_kv(args):
def unquote_string(string):
''' remove single or double quotes from beginning/end of string'''
if (string.startswith('"') and string.endswith('"')) or \
(string.startswith("'") and string.endswith("'")):
return string[1:-1]
else:
return string
def parse_kv(args, unquote=True):
''' convert a string of key/value items to a dict '''
options = {}
for x in args:
if x.find("=") != -1:
k, v = x.split("=")
options[k]=v
options[k]=unquote_string(v) if unquote else v
return options