hacking/ansible_profile
d03b16e8
 #!/usr/bin/env python
 from __future__ import (absolute_import, division, print_function)
 __metaclass__ = type
 
 import cProfile
 import sys
 import traceback
 
 import ansible.constants as C
 from ansible.module_utils._text import to_text
 
 #__requires__ = ['ansible']
 try:
     import pkg_resources
 except Exception:
     # Use pkg_resources to find the correct versions of libraries and set
     # sys.path appropriately when there are multiversion installs.  But we
     # have code that better expresses the errors in the places where the code
     # is actually used (the deps are optional for many code paths) so we don't
     # want to fail here.
     pass
 
 target = sys.argv.pop(1)
 myclass = "%sCLI" % target.capitalize()
 
 try:
     # define cli
     mycli = getattr(__import__("ansible.cli.%s" % target, fromlist=[myclass]), myclass)
 except ImportError as e:
     msg = getattr(e, 'msg', getattr(e, message, ''))
     if msg.endswith(' %s' % target):
         raise Exception("Ansible sub-program not implemented: %s" % target)
     else:
         raise
 
 try:
     args = [to_text(a, errors='surrogate_or_strict') for a in sys.argv]
 except UnicodeError:
     sys.stderr.write(u"The full traceback was:\n\n%s" % to_text(traceback.format_exc()))
     sys.exit(u'Command line args are parsable to utf-8')
 
 # init cli
 cli = mycli(args)
 
 print(cli.__class__.version_info(gitinfo=True))
 
 # parse args
 cli.parse()
 
 # run
 cProfile.run('cli.run()')