diff --git a/setup.py b/setup.py index 26daeb8b8dc..f6dfe52ec56 100644 --- a/setup.py +++ b/setup.py @@ -1,3 +1,4 @@ +import os import sys from setuptools import setup, find_packages @@ -11,6 +12,91 @@ readme = open('README.rst').read() requirements = [ ] +GALAXY_PACKAGE = os.environ.get("GALAXY_PACKAGE", "galaxy-lib") + +def _find_packages(base): + r = [] + for sub in find_packages(os.sep.join(['lib'] + base.split('.'))): + print 'Found package', '.'.join([base, sub]) + r.append('.'.join([base, sub])) + return r + + +if GALAXY_PACKAGE == "galaxy-lib": + requirements = [] + base_packages = [ + 'galaxy.datatypes', + 'galaxy.exceptions', + 'galaxy.jobs.metrics', + 'galaxy.objectstore', + 'galaxy.tools', + 'galaxy.util', + ] + package_data = [ + 'exceptions/error_codes.json', + 'datatypes/converters/*.xml', + 'datatypes/set_metadata_tool.xml', + 'tools/imp_exp/imp_history_from_archive.xml', + 'tools/imp_exp/exp_history_to_archive.xml', + ] +elif GALAXY_PACKAGE == "galaxy-app": + requirements = [ + 'galaxy-lib', + ] + base_packages = [ + 'galaxy.auth', + 'galaxy.dependencies', + 'galaxy.external_services', + 'galaxy.jobs', + 'galaxy.model', + 'galaxy.quota', + 'galaxy.security', + 'galaxy.work', + ] + package_data = [ + 'jobs/runners/util/job_script/DEFAULT_JOB_FILE_TEMPLATE.sh', + 'jobs/runners/util/job_script/CLUSTER_SLOTS_STATEMENT.sh', + 'model/migrate/migrate.cfg', + 'dependencies/*.txt', + # FIXME: web/proxy/js/lib doesn't exist + #'web/proxy/js/*', + ] +elif GALAXY_PACKAGE == "galaxy": + requirements = [ + 'galaxy-app', + ] + base_packages = [ + 'galaxy.actions', + 'galaxy.dataset_collections', + 'galaxy.forms', + 'galaxy.managers', + 'galaxy.openid', + 'galaxy.sample_tracking', + 'galaxy.tags', + 'galaxy.tours', + 'galaxy.visualization', + 'galaxy.web', + 'galaxy.webapps', + 'galaxy.workflow', + ] + package_data = [] +elif GALAXY_PACKAGE == 'tool-shed': + requirements = [ + 'galaxy-app', + ] + packages = ['tool_shed'] + _find_packages('tool_shed') + package_data = [] +else: + sys.stderr.write('ERROR: Unknown package name: {}\n'.format(GALAXY_PACKAGE)) + sys.exit(1) + + +if GALAXY_PACKAGE.startswith('galaxy'): + packages = ['galaxy'] + for base_package in base_packages: + packages.append(base_package) + packages.extend(_find_packages(base_package)) + # sets VERSION (also VERSION_MAJOR and VERSION_MINOR) execfile('lib/galaxy/version.py') @@ -18,38 +104,31 @@ execfile('lib/galaxy/version.py') scripts = ["scripts/galaxy"] setup( - name='galaxy', + #name='galaxy', + name=GALAXY_PACKAGE, version=VERSION, description='Galaxy (http://galaxyproject.org/).', long_description=readme, author='Galaxy Project', author_email='galaxy-dev@lists.galaxyproject.org', url='https://github.com/galaxyproject/galaxy', - packages=find_packages('lib'), + #packages=find_packages('lib'), + packages=packages, entry_points=''' [console_scripts] galaxy-paster=galaxy.util.pastescript.serve:run galaxy-main=galaxy.main:main ''', scripts=scripts, - package_data={'galaxy': [ - 'exceptions/error_codes.json', - 'jobs/runners/util/job_script/DEFAULT_JOB_FILE_TEMPLATE.sh', - 'jobs/runners/util/job_script/CLUSTER_SLOTS_STATEMENT.sh', - 'model/migrate/migrate.cfg', - 'dependencies/*.txt', - 'datatypes/converters/*.xml', - 'datatypes/set_metadata_tool.xml', - 'tools/imp_exp/imp_history_from_archive.xml', - 'tools/imp_exp/exp_history_to_archive.xml', - # FIXME: web/proxy/js/lib doesn't exist - #'web/proxy/js/*', - ], 'tool_shed': [ - 'galaxy_install/migrate/migrate.cfg', - 'scripts/bootstrap_tool_shed/parse_run_sh_args.sh', - 'scripts/bootstrap_tool_shed/bootstrap_tool_shed.sh', - 'scripts/bootstrap_tool_shed/user_info.xml', - ]}, + package_data={ + 'galaxy': package_data, + 'tool_shed': [ + 'galaxy_install/migrate/migrate.cfg', + 'scripts/bootstrap_tool_shed/parse_run_sh_args.sh', + 'scripts/bootstrap_tool_shed/bootstrap_tool_shed.sh', + 'scripts/bootstrap_tool_shed/user_info.xml', + ], + }, package_dir={'': 'lib'}, include_package_data=True, install_requires=requirements,