2012-03-10 20:02:25 +01:00
|
|
|
import os
|
2017-04-03 17:55:55 +02:00
|
|
|
import os.path
|
2012-03-10 20:02:25 +01:00
|
|
|
import sys
|
|
|
|
|
2013-12-16 21:57:03 +01:00
|
|
|
sys.path.insert(0, os.path.abspath('lib'))
|
2016-04-29 02:36:09 +02:00
|
|
|
from ansible.release import __version__, __author__
|
2014-04-02 22:36:41 +02:00
|
|
|
try:
|
2014-09-29 15:27:25 +02:00
|
|
|
from setuptools import setup, find_packages
|
2014-04-02 22:36:41 +02:00
|
|
|
except ImportError:
|
2015-01-26 16:08:36 +01:00
|
|
|
print("Ansible now needs setuptools in order to build. Install it using"
|
2017-05-30 19:05:19 +02:00
|
|
|
" your package manager (usually python-setuptools) or via pip (pip"
|
|
|
|
" install setuptools).")
|
2014-04-29 21:53:44 +02:00
|
|
|
sys.exit(1)
|
2012-02-24 03:07:03 +01:00
|
|
|
|
2017-02-15 15:58:09 +01:00
|
|
|
with open('requirements.txt') as requirements_file:
|
|
|
|
install_requirements = requirements_file.read().splitlines()
|
|
|
|
if not install_requirements:
|
|
|
|
print("Unable to read requirements from the requirements.txt file"
|
2017-05-30 19:05:19 +02:00
|
|
|
"That indicates this copy of the source code is incomplete.")
|
2017-02-15 15:58:09 +01:00
|
|
|
sys.exit(2)
|
|
|
|
|
2017-06-02 00:29:30 +02:00
|
|
|
# pycrypto or cryptography. We choose a default but allow the user to
|
|
|
|
# override it. This translates into pip install of the sdist deciding what
|
|
|
|
# package to install and also the runtime dependencies that pkg_resources
|
|
|
|
# knows about
|
|
|
|
crypto_backend = os.environ.get('ANSIBLE_CRYPTO_BACKEND', None)
|
|
|
|
if crypto_backend:
|
2017-06-27 15:00:15 +02:00
|
|
|
if crypto_backend.strip() == 'pycrypto':
|
|
|
|
# Attempt to set version requirements
|
|
|
|
crypto_backend = 'pycrypto >= 2.6'
|
|
|
|
|
2017-06-02 00:29:30 +02:00
|
|
|
install_requirements = [r for r in install_requirements if not (r.lower().startswith('pycrypto') or r.lower().startswith('cryptography'))]
|
|
|
|
install_requirements.append(crypto_backend)
|
|
|
|
|
|
|
|
|
2017-04-03 17:55:55 +02:00
|
|
|
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)
|
|
|
|
|
2017-02-10 18:33:48 +01:00
|
|
|
setup(
|
|
|
|
name='ansible',
|
|
|
|
version=__version__,
|
|
|
|
description='Radically simple IT automation',
|
|
|
|
author=__author__,
|
|
|
|
author_email='info@ansible.com',
|
2017-02-16 01:09:33 +01:00
|
|
|
url='https://ansible.com/',
|
2017-06-25 09:54:21 +02:00
|
|
|
license='GPLv3+',
|
2017-02-10 18:33:48 +01:00
|
|
|
# Ansible will also make use of a system copy of python-six and
|
|
|
|
# python-selectors2 if installed but use a Bundled copy if it's not.
|
2017-02-15 15:58:09 +01:00
|
|
|
install_requires=install_requirements,
|
2017-05-30 19:05:19 +02:00
|
|
|
package_dir={'': 'lib'},
|
2017-02-10 18:33:48 +01:00
|
|
|
packages=find_packages('lib'),
|
|
|
|
package_data={
|
|
|
|
'': [
|
|
|
|
'module_utils/*.ps1',
|
|
|
|
'modules/windows/*.ps1',
|
|
|
|
'modules/windows/*.ps1',
|
|
|
|
'galaxy/data/*/*.*',
|
2017-05-09 15:57:30 +02:00
|
|
|
'galaxy/data/*/*/.*',
|
2017-02-10 18:33:48 +01:00
|
|
|
'galaxy/data/*/*/*.*',
|
2017-06-14 17:08:34 +02:00
|
|
|
'galaxy/data/*/tests/inventory',
|
|
|
|
'config/data/*.yaml',
|
|
|
|
'config/data/*.yml',
|
2017-02-10 18:33:48 +01:00
|
|
|
],
|
|
|
|
},
|
|
|
|
classifiers=[
|
|
|
|
'Development Status :: 5 - Production/Stable',
|
|
|
|
'Environment :: Console',
|
|
|
|
'Intended Audience :: Developers',
|
|
|
|
'Intended Audience :: Information Technology',
|
|
|
|
'Intended Audience :: System Administrators',
|
|
|
|
'License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)',
|
|
|
|
'Natural Language :: English',
|
|
|
|
'Operating System :: POSIX',
|
|
|
|
'Programming Language :: Python :: 2.6',
|
|
|
|
'Programming Language :: Python :: 2.7',
|
|
|
|
'Topic :: System :: Installation/Setup',
|
|
|
|
'Topic :: System :: Systems Administration',
|
|
|
|
'Topic :: Utilities',
|
|
|
|
],
|
|
|
|
scripts=[
|
|
|
|
'bin/ansible',
|
|
|
|
'bin/ansible-playbook',
|
|
|
|
'bin/ansible-pull',
|
|
|
|
'bin/ansible-doc',
|
|
|
|
'bin/ansible-galaxy',
|
|
|
|
'bin/ansible-console',
|
|
|
|
'bin/ansible-connection',
|
|
|
|
'bin/ansible-vault',
|
|
|
|
],
|
|
|
|
data_files=[],
|
2012-02-24 03:07:03 +01:00
|
|
|
)
|