summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--MANIFEST.in6
-rw-r--r--Makefile9
-rw-r--r--awx/settings/production.py8
-rwxr-xr-xsetup.py54
4 files changed, 62 insertions, 15 deletions
diff --git a/MANIFEST.in b/MANIFEST.in
index f83b067eac..581c441eef 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,4 +1,4 @@
-recursive-include awx *.py *.pyc
+recursive-include awx *.py
recursive-include awx/static *.ico
recursive-include awx/templates *.html
recursive-include awx/ui *.html *.js
@@ -8,10 +8,8 @@ recursive-include awx/lib/site-packages *
recursive-include config *
recursive-include config/deb *
recursive-include config/rpm *
-recursive-exclude awx devonly.py
+recursive-exclude awx devonly.py*
recursive-exclude awx/settings local_settings.py*
-include *.py *.pyc *.txt *.md
-include MANIFEST.in
include COPYING
prune awx/public
prune awx/projects
diff --git a/Makefile b/Makefile
index 03e0f40290..5a90166f7f 100644
--- a/Makefile
+++ b/Makefile
@@ -3,7 +3,7 @@ SITELIB=$(shell $(PYTHON) -c "from distutils.sysconfig import get_python_lib; pr
# Get the branch information from git
GIT_DATE := $(shell git log -n 1 --format="%ai")
-DATE := $(shell date --utc +%Y%m%d%H%M)
+DATE := $(shell date -u +%Y%m%d%H%M)
VERSION=$(shell $(PYTHON) -c "from awx import __version__; print(__version__.split('-')[0])")
RELEASE=$(shell $(PYTHON) -c "from awx import __version__; print(__version__.split('-')[1])")
@@ -131,14 +131,11 @@ sdist: clean
if [ "$(OFFICIAL)" = "yes" ] ; then \
$(PYTHON) setup.py release_build; \
else \
- BUILD=$(BUILD) $(PYTHON) setup.py sdist; \
+ BUILD=$(BUILD) $(PYTHON) setup.py sdist_awx; \
fi
compiled: sdist
- (cd dist/ && tar zxf $(SDIST_TAR_FILE))
- (cd dist/ && $(PYTHON) -m compileall -f -x "(plugins/callback/job_event_callback.py|scripts/inventory.py|settings/*.py|site-packages/*.py)" ./awx-$(VERSION)$(BUILD)/awx)
- (cd dist/ && find ./awx-$(VERSION)$(BUILD)/awx \( -name "*.py" ! -path "*/plugins/callback/job_event_callback.py" ! -path "*/scripts/inventory.py" ! -path "*/settings/*.py" ! -path "*/site-packages/*.py" \) -delete)
- (cd dist/ && tar zcf $(SDIST_TAR_FILE) awx-$(VERSION)$(BUILD))
+ #(cd dist/ && tar zxf $(SDIST_TAR_FILE))
rpm: compiled
@mkdir -p rpm-build
diff --git a/awx/settings/production.py b/awx/settings/production.py
index 9ab3147053..7d3cc97678 100644
--- a/awx/settings/production.py
+++ b/awx/settings/production.py
@@ -25,6 +25,7 @@ ALLOWED_HOSTS = []
# CLH 6/20/13 - leave the following set to False until we actually have minified js ready
USE_MINIFIED_JS = False
+# URL used by inventory script and callback plugin to access API.
INTERNAL_API_URL = 'http://127.0.0.1:80'
# Load remaining settings from the global settings file specified in the
@@ -35,5 +36,8 @@ try:
execfile(settings_file)
except IOError:
from django.core.exceptions import ImproperlyConfigured
- raise ImproperlyConfigured('No AWX configuration found in %s'\
- % settings_file)
+ msg = 'No AWX configuration found at %s.' % settings_file
+ if 'AWX_SETTINGS_FILE' not in os.environ:
+ msg += '\nDefine the AWX_SETTINGS_FILE environment variable to specify'
+ msg += ' an alternate path.'
+ raise ImproperlyConfigured(msg)
diff --git a/setup.py b/setup.py
index 4d1fc7c6ec..eb1a12ed53 100755
--- a/setup.py
+++ b/setup.py
@@ -4,7 +4,10 @@
# All Rights Reserved.
import os, datetime, glob, sys
+from distutils import log
from setuptools import setup, find_packages
+from setuptools.command.sdist import sdist as _sdist
+
from awx import __version__
@@ -60,6 +63,48 @@ def proc_data_files(data_files):
#####################################################################
+class sdist_awx(_sdist, object):
+ '''
+ Custom sdist command to distribute some files as .pyc only.
+ '''
+
+ def make_release_tree(self, base_dir, files):
+ for f in files[:]:
+ if f.endswith('.egg-info/SOURCES.txt'):
+ files.remove(f)
+ sources_txt_path = f
+ super(sdist_awx, self).make_release_tree(base_dir, files)
+ new_sources_path = os.path.join(base_dir, sources_txt_path)
+ if os.path.isfile(new_sources_path):
+ log.warn('unlinking previous %s', new_sources_path)
+ os.unlink(new_sources_path)
+ log.info('writing new %s', new_sources_path)
+ new_sources = file(new_sources_path, 'w')
+ for line in file(sources_txt_path, 'r'):
+ line = line.strip()
+ if line in self.pyc_only_files:
+ line = line + 'c'
+ new_sources.write(line + '\n')
+
+ def make_distribution(self):
+ self.pyc_only_files = []
+ import py_compile
+ for n, f in enumerate(self.filelist.files[:]):
+ if not f.startswith('awx/'):
+ continue
+ if f.startswith('awx/lib/site-packages'):
+ continue
+ if f.startswith('awx/scripts'):
+ continue
+ if f.startswith('awx/plugins'):
+ continue
+ if f.endswith('.py'):
+ log.info('using pyc for: %s', f)
+ py_compile.compile(f, doraise=True)
+ self.filelist.files[n] = f + 'c'
+ self.pyc_only_files.append(f)
+ super(sdist_awx, self).make_distribution()
+
setup(
name='awx',
version=__version__.split("-")[0], # FIXME: Should keep full version here?
@@ -107,13 +152,16 @@ setup(
("%s" % webconfig, ["config/awx.conf"]),
]
),
- options={
+ options = {
'egg_info': {
'tag_build': '%s' % build_timestamp,
},
'aliases': {
- 'dev_build': 'clean --all egg_info sdist',
- 'release_build': 'clean --all egg_info -b "" sdist',
+ 'dev_build': 'clean --all egg_info sdist_awx',
+ 'release_build': 'clean --all egg_info -b "" sdist_awx',
},
},
+ cmdclass = {
+ 'sdist_awx': sdist_awx,
+ },
)