diff --git a/library/slurp b/library/slurp new file mode 100755 index 0000000000..8b80e5da4b --- /dev/null +++ b/library/slurp @@ -0,0 +1,71 @@ +#!/usr/bin/python + +# (c) 2012, Michael DeHaan +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# 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 + +try: + import json +except ImportError: + import simplejson as json + +# =========================================== +# convert arguments of form a=b c=d +# to a dictionary + +if len(sys.argv) == 1: + sys.exit(1) +argfile = sys.argv[1] +if not os.path.exists(argfile): + sys.exit(1) +items = shlex.split(open(argfile, 'r').read()) + +params = {} +for x in items: + (k, v) = x.split("=") + params[k] = v +source = 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" % metadata + )) + sys.exit(1) + +if not os.access(source, os.R_OK): + print json.dumps(dict( + failed = 1, + msg = "file is not readable: %s" % source + )) + sys.exit(1) + +# ========================================== + +data = file(source).read() +data = base64.b64encode(data) + +print json.dumps(dict(content=data, encoding='base64')) +sys.exit(0) +