diff --git a/slurp b/slurp index acb6b5f83ff..b23f1da6a49 100755 --- a/slurp +++ b/slurp @@ -17,60 +17,24 @@ # You should have received a copy of the GNU General Public License # along with Ansible. If not, see . -import sys -import os -import shlex import base64 -import syslog -try: - import json -except ImportError: - import simplejson as json +# this is magic, see lib/ansible/module_common.py +#<> -# =========================================== -# convert arguments of form a=b c=d -# to a dictionary +module = AnsibleModule( + argument_spec = dict( + src=(None,True), + ) +) +source = module.params['src'] -if len(sys.argv) == 1: - sys.exit(1) -argfile = sys.argv[1] -if not os.path.exists(argfile): - sys.exit(1) - -args = open(argfile, 'r').read() -items = shlex.split(args) -syslog.openlog('ansible-%s' % os.path.basename(__file__)) -syslog.syslog(syslog.LOG_NOTICE, 'Invoked with %s' % args) - -params = {} -for x in items: - (k, v) = x.split("=") - params[k] = v -source = os.path.expanduser(params['src']) - -# ========================================== - -# raise an error if there is no template metadata if not os.path.exists(source): - print json.dumps(dict( - failed = 1, - msg = "file not found: %s" % source - )) - sys.exit(1) - + module.fail_json(msg="file not found: %s" % source) if not os.access(source, os.R_OK): - print json.dumps(dict( - failed = 1, - msg = "file is not readable: %s" % source - )) - sys.exit(1) + module.fail_json(msg="file is not readable: %s" % source) -# ========================================== +data = base64.b64encode(file(source).read()) -data = file(source).read() -data = base64.b64encode(data) - -print json.dumps(dict(content=data, encoding='base64')) -sys.exit(0) +module.exit_json(content=data, encoding='base64')