From 0bc2d1f25860956f713ef0bdc86e67141360090d Mon Sep 17 00:00:00 2001
From: Toshio Kuratomi <a.badger@gmail.com>
Date: Wed, 8 Mar 2017 14:06:29 -0800
Subject: [PATCH] Handle downstream version additions
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
---
bin/ansible | 26 ++++++++++++++++----------
1 file changed, 16 insertions(+), 10 deletions(-)
diff --git a/bin/ansible b/bin/ansible
index 22dd449..24550b9 100755
--- a/bin/ansible
+++ b/bin/ansible
@@ -69,17 +69,23 @@ if __name__ == '__main__':
display.debug("starting run")
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:
- if me.find('-') != -1:
- 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)
+ mycli = getattr(__import__("ansible.cli.%s" % sub, fromlist=[myclass]), myclass)
except ImportError as e:
# ImportError members have changed in py3
if 'msg' in dir(e):
--
2.9.3