issue #106: 2.3.x compatible get_shebang-alike.

This commit is contained in:
David Wilson 2018-04-01 22:04:05 +01:00
parent e5723e4f5f
commit 822502125d
1 changed files with 14 additions and 10 deletions

View File

@ -166,20 +166,24 @@ class ScriptPlanner(BinaryPlanner):
Common functionality for script module planners -- handle interpreter
detection and rewrite.
"""
def _rewrite_interpreter(self, interpreter, task_vars, templar):
key = u'ansible_%s_interpreter' % os.path.basename(interpreter).strip()
try:
return templar.template(task_vars[key].strip())
except KeyError:
return interpreter
def plan(self, invocation):
kwargs = super(ScriptPlanner, self).plan(invocation)
interpreter, arg = parse_script_interpreter(invocation.module_source)
shebang, _ = module_common._get_shebang(
interpreter=interpreter,
task_vars=invocation.task_vars,
templar=invocation.templar,
return dict(kwargs,
interpreter_arg=arg,
interpreter=self._rewrite_interpreter(
interpreter=interpreter,
task_vars=invocation.task_vars,
templar=invocation.templar,
)
)
if shebang:
interpreter = shebang[2:]
kwargs['interpreter'] = interpreter
kwargs['interpreter_arg'] = arg
return kwargs
class ReplacerPlanner(BinaryPlanner):