From 57a7d7704ff091f5f9b957c12826435829b1c892 Mon Sep 17 00:00:00 2001 From: Toshio Kuratomi Date: Mon, 3 Apr 2017 08:55:55 -0700 Subject: [PATCH] Make scripts into symlinks pip can't handle zip files with symlinks. Attempt to workaround that by transforming the bin scripts into symlinks after the zip file has been unarchived into the build tree. --- setup.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/setup.py b/setup.py index fc9276b509f..5a89327a3f1 100644 --- a/setup.py +++ b/setup.py @@ -1,4 +1,5 @@ import os +import os.path import sys sys.path.insert(0, os.path.abspath('lib')) @@ -18,6 +19,25 @@ with open('requirements.txt') as requirements_file: "That indicates this copy of the source code is incomplete.") sys.exit(2) +SYMLINKS = {'ansible': frozenset(('ansible-console', + 'ansible-doc', + 'ansible-galaxy', + 'ansible-playbook', + 'ansible-pull', + 'ansible-vault'))} + +for source in SYMLINKS: + for dest in SYMLINKS[source]: + dest_path = os.path.join('bin', dest) + if not os.path.islink(dest_path): + try: + os.unlink(dest_path) + except OSError as e: + if e.errno == 2: + # File does not exist which is all we wanted + pass + os.symlink(source, dest_path) + setup( name='ansible', version=__version__,