Makefile 5.07 KB
# 20170207
# make config IP=127.0.0.1 KEY=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
# make install

CURRENT_IP               := $(shell ip route get 1 | awk '{print $$7; exit}')
NETWORK_INTERFACE        := $(shell ip route | grep "default" | awk '{print $$5; exit}')
VLIBRAS_WIKILIBRAS_ENV   := /etc/profile.d/lavid/vlibras/wikilibras_env.sh
VW_CORRETOR_DIR          := $(CURDIR)/corretor_sinais
VW_DIR                   := $(CURDIR)
VW_LOCALHOST             := ${IP}
VW_PYBOSSA_API_KEY       := ${KEY}
VW_PYBOSSA_DIR           := $(CURDIR)/pybossa
VW_TASKMGR_DIR           := $(CURDIR)/taskmgr
VW_VALIDADOR_DIR         := $(CURDIR)/validador_sinais
VW_WIKILIBRAS_DIR        := $(CURDIR)/wikilibrasV2
LOCALHOST                = ${IP}

-include ${VLIBRAS_WIKILIBRAS_ENV}

ifndef VW_PYBOSSA_API_KEY
    VW_PYBOSSA_API_KEY   := ${PYBOSSA_API_KEY}
endif

ifndef VW_LOCALHOST
    # Attempt 1: use ip detected automatically
    VW_LOCALHOST         := ${CURRENT_IP}
endif

ifndef VW_LOCALHOST
    # Attempt 2: use ip stored in file ${VLIBRAS_WIKILIBRAS_ENV}
    VW_LOCALHOST         := ${LOCALHOST}
endif

showip:
	@ echo Current Interface: ${NETWORK_INTERFACE}
	@ echo Current IP: ${CURRENT_IP}

%_env.sh:
	@ echo "#!/bin/sh"                                                                 > "$@"
	@ echo ""                                                                         >> "$@"
	@ echo "#***********************************************************************" >> "$@"
	@ echo "# Environment variables for Wikilibras"                                   >> "$@"
	@ echo "#"                                                                        >> "$@"
	@ echo "# Created by: LAViD VLibras-Wikilibras $(shell date)"                     >> "$@"
	@ echo "#"                                                                        >> "$@"
	@ echo "# WARNING! All changes made in this file will be lost after instalation!" >> "$@"
	@ echo "#***********************************************************************" >> "$@"
	@ echo ""                                                                         >> "$@"
	@ echo "export LOCALHOST=\"${VW_LOCALHOST}\""                                     >> "$@"
	@ echo "export NETWORK_INTERFACE=\"${NETWORK_INTERFACE}\""                        >> "$@"
	@ echo "export PYBOSSA_API_KEY=\"${VW_PYBOSSA_API_KEY}\""                         >> "$@"
	@ echo "export VW_CORRETOR_DIR=\"${VW_CORRETOR_DIR}\""                            >> "$@"
	@ echo "export VW_DIR=\"${VW_DIR}\""                                              >> "$@"
	@ echo "export VW_PYBOSSA_DIR=\"${VW_PYBOSSA_DIR}\""                              >> "$@"
	@ echo "export VW_TASKMGR_DIR=\"${VW_TASKMGR_DIR}\""                              >> "$@"
	@ echo "export VW_VALIDADOR_DIR=\"${VW_VALIDADOR_DIR}\""                          >> "$@"
	@ echo "export VW_WIKILIBRAS_DIR=\"${VW_WIKILIBRAS_DIR}\""                        >> "$@"

config: $(notdir ${VLIBRAS_WIKILIBRAS_ENV})
	@ cat "$^"
	@ sudo install -m 655 -p "$^" -D "${VLIBRAS_WIKILIBRAS_ENV}" && rm -f "$^"
	@ $(MAKE) -sC ${VW_PYBOSSA_DIR} $@
	@ $(MAKE) -sC ${VW_CORRETOR_DIR} $@
	@ $(MAKE) -sC ${VW_VALIDADOR_DIR} $@
	@ $(MAKE) -sC ${VW_WIKILIBRAS_DIR} $@
	@ $(MAKE) -sC ${VW_TASKMGR_DIR} $@
	@ $(MAKE) -s apache
	@ $(MAKE) -s showip

start-up:
	@ while ! sudo service supervisor restart; do echo "fail, retrying ..."; done
	@ sudo supervisorctl restart rq-scheduler
	@ sudo supervisorctl restart rq-worker
	@ sudo supervisorctl restart pybossa
	@ sudo service apache2 restart
	@ sudo service apache2 reload

apache:
	@ sudo service apache2 start
	@ if [ -e /etc/apache2/sites-enabled/pybossa.conf ]; then sudo a2dissite pybossa.conf; fi
	@ if [ -e /etc/apache2/sites-available/wikilibras.conf ]; then sudo a2ensite wikilibras.conf; fi
	@ sudo apachectl configtest
	@ sudo service apache2 reload
	@ sudo service apache2 restart

create_project update_project:
	@ $(MAKE) -sC ${VW_CORRETOR_DIR} $@
	@ $(MAKE) -sC ${VW_VALIDADOR_DIR} $@
	@ $(MAKE) -sC ${VW_WIKILIBRAS_DIR} $@

REPOSITORIES             += "corretor_sinais"
REPOSITORIES             += "pybossa"
REPOSITORIES             += "taskmgr"
REPOSITORIES             += "validador_sinais"
REPOSITORIES             += "wikilibras-api"
REPOSITORIES             += "wikilibras-core"
REPOSITORIES             += "wikilibras-front"
REPOSITORIES             += "wikilibrasdbapi"
REPOSITORIES             += "wikilibrasV2"

reset:
	@ curl "http://${LOCALHOST}:200/reset" && echo ""
	@ curl "http://${LOCALHOST}:200/resettasks" && echo ""
	@ $(MAKE) -sC wikilibrasdbapi distclean
	@ $(MAKE) -sC taskmgr clean
	@ $(MAKE) -sC wikilibras-core clean
	@ sudo service apache2 stop
	@ sudo rm -f /var/log/apache2/error.log
	@ sudo touch /var/log/apache2/error.log
	@ sudo service apache2 start
	@ sudo service apache2 reload
	@ $(MAKE) -sC $(CURDIR) update_project

clone:
	@ for i in ${REPOSITORIES}; \
	do \
	    [ -d "$$i" ] || git clone "git@gitlab.lavid.ufpb.br:wikilibras/$$i.git"; \
	done

install:
	@ sudo apt-get update && sudo apt-get -y install build-essential git-core openssh-server

uninstall:
	@ sudo rm -f ${VLIBRAS_WIKILIBRAS_ENV}

.PHONY: %_env.sh config clone showip install uninstall