Makefile 2.02 KB
SCRIPT_NAME     := wikilibras-db-api
SCRIPT_PATH     := $(CURDIR)/${SCRIPT_NAME}
SCRIPT_PATH_TMP := /tmp/${SCRIPT_NAME}
SCRIPT_PATH_ETC := /etc/init.d/${SCRIPT_NAME}
NPM             := $(shell which npm)

install:
	@ # @ sudo chmod -R 777 $$HOME/tmp/
	@ npm install
	@ sudo npm install -g supervisor

autostart-enable:
	@ install -m 777 -p ${SCRIPT_PATH} ${SCRIPT_PATH_TMP}
	@ sed -i "s#<CURDIR>#$(CURDIR)#" ${SCRIPT_PATH_TMP}
	@ sed -i "s#<SCRIPT_NAME>#${SCRIPT_NAME}#" ${SCRIPT_PATH_TMP}
	@ sed -i "s#<NPM>#${NPM}#" ${SCRIPT_PATH_TMP}
	@ sudo install -m 755 -p ${SCRIPT_PATH_TMP} ${SCRIPT_PATH_ETC}
	@ sudo update-rc.d -f ${SCRIPT_NAME} remove
	@ sudo update-rc.d -f ${SCRIPT_NAME} defaults

autostart-disable:
	@ sudo update-rc.d -f ${SCRIPT_NAME} remove
	@ sudo rm -f ${SCRIPT_PATH_ETC}

clean:
	@ sudo chmod -R 777 ./public/users/ ./uploads/
	@ find ./public/users/ -type d -empty -delete

distclean:
	@ sudo rm -rf ./public/users/* ./uploads/*

run:
	@ sudo ${NPM} start

uninstall: distclean
	@ rm -rf ./node_modules/

ROLENAME := wikilibras
DATABASE := wikilibras
PASSWORD := wikilibras123
DBFILEIN := wikilibras-db-api.sql
DBOUTBAK := wikilibras-db-api-dump.sql
VERBOSE  := #-v

create-db: .create-role .create-db .restore-db
drop-db: .restart-db .drop-db .drop-role

dump-db:
	@ sudo su postgres -c "PGPASSWORD='${PASSWORD}' pg_dump ${VERBOSE} -b --inserts ${ROLENAME};" > ${DBOUTBAK}

.create-db:
	@ sudo su postgres -c "psql -c \"CREATE DATABASE ${DATABASE} OWNER ${ROLENAME};\""

.create-role:
	@ sudo su postgres -c "psql -c \"CREATE USER ${ROLENAME} WITH PASSWORD '${PASSWORD}';\""

.drop-db:
	@ sudo su postgres -c "psql -c \"DROP DATABASE ${DATABASE};\""

.drop-role:
	@ sudo su postgres -c "psql -c \"DROP USER ${ROLENAME};\""

populate-db:
	@ sudo su postgres -c "psql --set ON_ERROR_STOP=off -f ${DBOUTBAK} ${ROLENAME}"

.restart-db:
	@ sudo service postgresql restart

.restore-db:
	@ sudo su postgres -c "psql --set ON_ERROR_STOP=off -f ${DBFILEIN} ${ROLENAME}"

.PHONY: autostart-enable autostart-disable clean distclean install run uninstall