diff --git a/library/facter b/library/facter index 46cdf889cca..554e63f3a98 100755 --- a/library/facter +++ b/library/facter @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/python # (c) 2012, Michael DeHaan # @@ -22,5 +22,28 @@ # facter # ruby-json -/usr/bin/logger -t ansible-facter Invoked as-is -/usr/bin/facter --json 2>/dev/null +import subprocess + +def get_facter_data(): + p = subprocess.Popen(["/usr/bin/env", "facter", "--json"], stdout=subprocess.PIPE, stderr=subprocess.PIPE) + (out, err) = p.communicate() + rc = p.returncode + return rc, out, err + + +def main(): + module = AnsibleModule( + argument_spec = dict() + ) + + rc, out, err = get_facter_data() + if rc != 0: + module.fail_json(msg=err) + else: + module.exit_json(**json.loads(out)) + +# this is magic, see lib/ansible/module_common.py +#<> + +main() +