mirror of
				https://github.com/ansible-collections/community.general.git
				synced 2024-09-14 20:13:21 +02:00 
			
		
		
		
	
		
			
				
	
	
		
			51 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
| #!/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()')
 |