Makefile
3.11 KB
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
PROJECT_NAME = wikilibras
VLIBRAS_NAME = vlibras-wiki
PYBOSSA_CONF = /etc/apache2/sites-available/pybossa.conf
PROJECT_DIR = $(CURDIR)
SED_REPLACE_ALL = sed -i "s/$(1)/$(2)/g" "$(3)"
SED_REPLACE_ALL_PATH = sed -i "s\#$(1)\#$(2)\#g" "$(3)"
ifndef LOCALHOST
ifndef NETWORK_INTERFACE
NETWORK_INTERFACE := $(shell ip route | awk '{print $$5; exit}')
endif
ifdef NETWORK_INTERFACE
LOCALHOST := $(shell ip addr list ${NETWORK_INTERFACE} | grep "inet " | cut -d ' ' -f6 | cut -d/ -f1)
endif
endif
ifndef LOCALHOST
LOCALHOST := localhost
endif
install: uninstall config
@( \
virtualenv ./env/; \
. ./env/bin/activate; \
pip install -U pip; \
pip install -U uwsgi; \
pip install -U ndg-httpsclient; \
pip install -r requirements.txt; \
)
ifdef PYBOSSA_API_KEY
@ curl "http://${LOCALHOST}/${PROJECT_NAME}-backend/create_project" && echo ""
@ echo "http://${LOCALHOST}/${PROJECT_NAME}-backend/create_project"
endif
config:
@ $(info Using interface: ${NETWORK_INTERFACE})
@ $(info Using local IP: ${LOCALHOST})
@ cp settings_local.py.tmpl settings_local.py
@ $(call SED_REPLACE_ALL_PATH,<path-to-project>,${PROJECT_DIR},settings_local.py)
@ $(call SED_REPLACE_ALL,localhost,${LOCALHOST},settings_local.py)
ifdef PYBOSSA_API_KEY
@ $(call SED_REPLACE_ALL,my-api-key,${PYBOSSA_API_KEY},settings_local.py)
endif
@ cp ./contrib/${PROJECT_NAME}.wsgi.tmpl ./contrib/${PROJECT_NAME}.wsgi
@ $(call SED_REPLACE_ALL_PATH,<path-to-project>,${PROJECT_DIR},./contrib/${PROJECT_NAME}.wsgi)
@ cp ./contrib/apache/${PROJECT_NAME}.conf.tmpl ./contrib/apache/${PROJECT_NAME}.conf
@ $(call SED_REPLACE_ALL,ServerName localhost,ServerName ${LOCALHOST},./contrib/apache/${PROJECT_NAME}.conf)
@ $(call SED_REPLACE_ALL,user1,$$USER,./contrib/apache/${PROJECT_NAME}.conf)
@ $(call SED_REPLACE_ALL,group1,$$USER,./contrib/apache/${PROJECT_NAME}.conf)
@ $(call SED_REPLACE_ALL_PATH,<path-to-project>,${PROJECT_DIR},./contrib/apache/${PROJECT_NAME}.conf)
@ sudo cp -u ${PYBOSSA_CONF} /etc/apache2/sites-available/${VLIBRAS_NAME}.conf
@ if grep -q "${PROJECT_NAME}" "/etc/apache2/sites-available/${VLIBRAS_NAME}.conf"; \
then \
echo "A previous WSGI daemon definition for '${PROJECT_NAME}' in: /etc/apache2/sites-available/${VLIBRAS_NAME}.conf"; \
else \
sudo sed -i -e "/Header/,/VirtualHost>/d" /etc/apache2/sites-available/${VLIBRAS_NAME}.conf; \
sudo sed -n -e '/WSGIDaemonProcess/,/VirtualHost>/p' ./contrib/apache/${PROJECT_NAME}.conf | \
sudo tee -a /etc/apache2/sites-available/${VLIBRAS_NAME}.conf > /dev/null; \
fi
@ sudo a2dissite pybossa.conf
@ sudo a2ensite ${VLIBRAS_NAME}.conf
@ sudo apachectl configtest
@ sudo service apache2 reload
clean:
@ find . -regextype posix-awk -regex "(.*.log|.*.pyc)" -type f -print -delete
uninstall: clean
@ rm -rf ./env/
@ rm -f ./settings_local.py
@ rm -f ./contrib/${PROJECT_NAME}.wsgi
@ sudo rm -f /etc/apache2/sites-available/${VLIBRAS_NAME}.conf
@ sudo rm -f /etc/apache2/sites-enabled/${VLIBRAS_NAME}.conf
run:
@ ( \
. ./env/bin/activate; \
python main.py; \
)