Handle downstream version additions (#22428)

Some downstreams want to ship multiple versions of ansible (Either to
have multiple ansible versions or to have a version that uses python3.X
and a version that uses python2.x).  When they do this, they append
a version number to the cli scripts in /usr/bin.  This patch will remove
those version numbers before trying to find the ansible python module to
import for this commandline
pull/22474/head
Toshio Kuratomi 8 years ago committed by GitHub
parent 4ca7726e75
commit 9ff03e6c1e

@ -69,17 +69,23 @@ if __name__ == '__main__':
display.debug("starting run") display.debug("starting run")
sub = None sub = None
target = me.split('-')
if target[-1][0].isdigit():
# Remove any version or pthon version info as downstreams
# sometimes add that
target = target[:-1]
if len(target) > 1:
sub = target[1]
myclass = "%sCLI" % sub.capitalize()
elif target[0] == 'ansible':
sub = 'adhoc'
myclass = 'AdHocCLI'
else:
raise AnsibleError("Unknown Ansible alias: %s" % me)
try: try:
if me.find('-') != -1: mycli = getattr(__import__("ansible.cli.%s" % sub, fromlist=[myclass]), myclass)
target = me.split('-')
if len(target) > 1:
sub = target[1]
myclass = "%sCLI" % sub.capitalize()
mycli = getattr(__import__("ansible.cli.%s" % sub, fromlist=[myclass]), myclass)
elif me == 'ansible':
from ansible.cli.adhoc import AdHocCLI as mycli
else:
raise AnsibleError("Unknown Ansible alias: %s" % me)
except ImportError as e: except ImportError as e:
# ImportError members have changed in py3 # ImportError members have changed in py3
if 'msg' in dir(e): if 'msg' in dir(e):

Loading…
Cancel
Save