-
Notifications
You must be signed in to change notification settings - Fork 16
/
Makefile
94 lines (68 loc) · 2.74 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#
# Run install_packages as root.
# Then run local_install from current directory (for local install + app build).
#
SHELL = bash
DJANGO_DIR = dj
VIRTUAL_ENV = var/ve
LOCALPATH = $(CURDIR)
PYTHONPATH = $(LOCALPATH)/$(DJANGO_DIR)
SETTINGS = settings
DJANGO_SETTINGS_MODULE = $(DJANGO_DIR).settings.$(SETTINGS)
DJANGO_POSTFIX = --settings=$(DJANGO_SETTINGS_MODULE) --pythonpath=$(PYTHONPATH)
PYTHON_BIN = $(VIRTUAL_ENV)/bin
PYTHON = python3.6
PYTHON_VERSION_FULL := $(wordlist 2,4,$(subst ., ,$(shell python --version 2>&1)))
PYTHON_VERSION_MAJOR := $(word 1,${PYTHON_VERSION_FULL}).$(word 2,${PYTHON_VERSION_FULL})
TYPE = dev
INIT_DATA_PATH = data
INIT_DATA_FILE = $(INIT_DATA_PATH)/init.json
INIT_DATA_MEDIA = $(INIT_DATA_PATH)/media
test_modules = test_chamber.tests
clean:
find . -name "*.pyc" -delete;
find . -type d -empty -delete;
cleanvirtualenv:
rm -rf $(VIRTUAL_ENV)
cleanvar: clean cleanvirtualenv
rm -rf $(LOCALPATH)/var
cleanall: cleanvar
pip:
$(PYTHON_BIN)/pip install --process-dependency-links -r requirements/base.txt
initvirtualenv:
virtualenv -p $(PYTHON) --no-site-packages $(VIRTUAL_ENV)
$(PYTHON_BIN)/pip install setuptools --upgrade
bootstrap: initvirtualenv pip
reinstallvirtualenv: cleanvirtualenv bootstrap initvirtualenv initenv
test: clean
$(PYTHON_BIN)/coverage run --rcfile=$(LOCALPATH)/../.coveragerc $(LOCALPATH)/manage.py test $(test_modules)\
$(DJANGO_POSTFIX) -v 2 --noinput $(extra)
htmlcoverage: test
$(PYTHON_BIN)/coverage html -d $(LOCALPATH)/var/reports/htmlcov --rcfile=$(LOCALPATH)/../.coveragerc
$(OPENHTML) $(LOCALPATH)/var/reports/htmlcov/index.html
initdb:
mkdir -p $(LOCALPATH)/var/db
syncdb:
$(PYTHON_BIN)/python manage.py migrate --run-syncdb --noinput $(DJANGO_POSTFIX)
initdata: syncmedia
if [ -a $(LOCALPATH)/$(INIT_DATA_FILE) ]; then $(PYTHON_BIN)/python manage.py loaddata $(LOCALPATH)/$(INIT_DATA_FILE) $(DJANGO_POSTFIX); fi;
resetdb:
$(PYTHON_BIN)/python manage.py reset_db --noinput $(DJANGO_POSTFIX)
$(MAKE) syncdb
syncmedia:
if [ -d "$(LOCALPATH)/$(INIT_DATA_MEDIA)" ]; then\
cp -R $(LOCALPATH)/$(INIT_DATA_MEDIA)/* $(LOCALPATH)/media/;\
fi;
initlog:
mkdir -p $(LOCALPATH)/var/log
initenv:
echo -e '\nDJANGO_SETTINGS_MODULE="$(DJANGO_SETTINGS_MODULE)"' >> $(VIRTUAL_ENV)/bin/activate
echo -e 'export DJANGO_SETTINGS_MODULE' >> $(VIRTUAL_ENV)/bin/activate
callcommand:
@$(PYTHON_BIN)/python manage.py $(command) $(DJANGO_POSTFIX)
runserver:
$(PYTHON_BIN)/python manage.py runserver --insecure $(DJANGO_POSTFIX)
install: cleanvar bootstrap initlog linklibrary initdb syncdb initdata initenv
update: clean cleanvirtualenv cleanjs bootstrap syncdb initenv
linklibrary:
ln -sf $$(pwd)/../chamber/ $$($(PYTHON_BIN)/python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())");