Makefile 3.11 KB
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; \
	 )