awx/setup.py
2013-06-15 22:02:30 -05:00

120 lines
3.4 KiB
Python
Executable File

#!/usr/bin/env python
# Copyright (c) 2013 AnsibleWorks, Inc.
# All Rights Reserved.
import os, datetime, glob
from setuptools import setup, find_packages
from ansibleworks import __version__
build_timestamp = datetime.datetime.now().strftime('%Y%m%d%H%M')
# Paths we'll use later
etcpath = "/etc/ansibleworks"
homedir = "/var/lib/ansibleworks"
if os.path.exists("/etc/debian_version"):
webconfig = "/etc/apache2/conf.d"
else:
webconfig = "/etc/httpd/conf.d"
#####################################################################
# Helper Functions
def explode_glob_path(path):
"""Take a glob and hand back the full recursive expansion,
ignoring links.
"""
result = []
includes = glob.glob(path)
for item in includes:
if os.path.isdir(item) and not os.path.islink(item):
result.extend(explode_glob_path(os.path.join(item, "*")))
else:
result.append(item)
return result
def proc_data_files(data_files):
"""Because data_files doesn't natively support globs...
let's add them.
"""
result = []
for dir,files in data_files:
includes = []
for item in files:
includes.extend(explode_glob_path(item))
result.append((dir, includes))
return result
#####################################################################
setup(
name='ansibleworks',
version=__version__.split("-")[0],
author='AnsibleWorks, Inc.',
author_email='support@ansibleworks.com',
description='AnsibleWorks API, UI and Task Engine',
long_description='AnsibleWorks API, UI and Task Engine',
license='Proprietary',
keywords='ansible',
url='http://github.com/ansible/ansible-commander',
packages=['ansibleworks'],
include_package_data=True,
zip_safe=False,
install_requires=[
'Django>=1.5',
'django-celery',
'django-extensions',
'django-filter',
'django-jsonfield',
'django-taggit',
'djangorestframework>=2.3.0,<2.4.0',
'pexpect',
'python-dateutil',
'PyYAML',
'South>=0.8,<2.0',
],
setup_requires=[],
classifiers=[
'Development Status :: 4 - Beta',
'Environment :: Web Environment',
'Framework :: Django',
'Intended Audience :: Developers',
'Intended Audience :: Information Technology',
'Intended Audience :: System Administrators'
'License :: Other/Proprietary License',
'Natural Language :: English',
'Operating System :: OS Independent',
'Operating System :: POSIX',
'Programming Language :: Python',
'Topic :: System :: Installation/Setup',
'Topic :: System :: Systems Administration',
],
entry_points = {
'console_scripts': [
'ansibleworks-manage = ansibleworks:manage',
],
},
data_files = proc_data_files([
("%s" % homedir, ["ansibleworks/wsgi.py",
"ansibleworks/static/favicon.ico",
]),
("%s" % etcpath, ["config/settings.py"]),
("%s" % webconfig, ["config/ansibleworks.conf"]),
]
),
options={
'egg_info': {
'tag_build': '-dev%s' % build_timestamp,
},
'aliases': {
'dev_build': 'clean --all egg_info sdist',
'release_build': 'clean --all egg_info -b "" sdist',
},
},
)