From e50c2bccb88280ae37f39c755b0ef8bdb7fd79d8 Mon Sep 17 00:00:00 2001 From: Matt Martz Date: Mon, 30 Dec 2013 14:32:13 -0600 Subject: [PATCH] Add -I/--interpreter argument to test-module --- hacking/test-module | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/hacking/test-module b/hacking/test-module index 24c04900b29..cf4b4753900 100755 --- a/hacking/test-module +++ b/hacking/test-module @@ -56,6 +56,9 @@ def parse(): help="module argument string") parser.add_option('-D', '--debugger', dest='debugger', help="path to python debugger (e.g. /usr/bin/pdb)") + parser.add_option('-I', '--interpreter', dest='interpreter', + help="path to interpeter to use for this module (e.g. ansible_python_interpreter=/usr/bin/python)", + metavar='INTERPRETER_TYPE=INTERPRETER_PATH') options, args = parser.parse_args() if not options.module_path: parser.print_help() @@ -74,7 +77,7 @@ def write_argsfile(argstring, json=False): argsfile.close() return argspath -def boilerplate_module(modfile, args): +def boilerplate_module(modfile, args, interpreter): """ simulate what ansible does with new style modules """ #module_fh = open(modfile) @@ -87,6 +90,16 @@ def boilerplate_module(modfile, args): complex_args = {} inject = {} + if interpreter: + if '=' not in interpreter: + print 'interpeter must by in the form of ansible_python_interpreter=/usr/bin/python' + sys.exit(1) + interpreter_type, interpreter_path = interpreter.split('=') + if not interpreter_type.startswith('ansible_'): + interpreter_type = 'ansible_%s' % interpreter_type + if not interpreter_type.endswith('_interpreter'): + interpreter_type = '%s_interpreter' % interpreter_type + inject[interpreter_type] = interpreter_path (module_data, module_style, shebang) = replacer.modify_module( modfile, complex_args, @@ -144,7 +157,7 @@ def rundebug(debugger, modfile, argspath): def main(): options, args = parse() - (modfile, module_style) = boilerplate_module(options.module_path, options.module_args) + (modfile, module_style) = boilerplate_module(options.module_path, options.module_args, options.interpreter) argspath=None if module_style != 'new':