# If you want, change INTERFACE = (eth0|eth1|wlan0|wlan1|e.g) INTERFACE = $(shell ip route | awk '{print $$5; exit}') LOG = server.log SERVER = server.js BLENDER_VER = "2.74" BLENDER_DIR = "blender-$(BLENDER_VER)-linux-glibc211-x86_64" BLENDER_BZ2 = "$(BLENDER_DIR).tar.bz2" BLENDER_URL = "http://download.blender.org/release/Blender$(BLENDER_VER)/$(BLENDER_BZ2)" CACHE += "./events.log" CACHE += "./server.log" DONE = [\33[32;5mFinalizado\33[m] FAIL = [\33[31;5mFalhou\33[m] Codigo: $$? INIT_SCRIPT = "wikilibras-api" LOCALHOST = $(shell ip addr list ${INTERFACE} | grep "inet " | cut -d ' ' -f6 | cut -d/ -f1) __help__: @echo "" @echo " \33[32;5m make clean \33[0m \33[34;5m Remove os logs do servidor \33[0m" @echo " \33[32;5m make install \33[0m \33[34;5m instala todas as dependencias da API \33[0m" @echo " \33[32;5m make list \33[0m \33[34;5m lista a API se estiver ativa em background \33[0m" @echo " \33[32;5m make run \33[0m \33[34;5m conecta o servidor js ao MongoDB para testes \33[0m" @echo " \33[32;5m make start \33[0m \33[34;5m inicia uma instancia da API em background \33[0m" @echo " \33[32;5m make stop \33[0m \33[34;5m finaliza a API instanciada no background \33[0m" @echo "" startup-enable: @sed "s##$(CURDIR)#" ./$(INIT_SCRIPT) | sudo tee /etc/init.d/$(INIT_SCRIPT) @sudo chmod 755 /etc/init.d/$(INIT_SCRIPT) @sudo chown "root:root" /etc/init.d/$(INIT_SCRIPT) @sudo update-rc.d -f $(INIT_SCRIPT) defaults startup-disable: @sudo update-rc.d -f $(INIT_SCRIPT) remove @sudo rm -f /etc/init.d/$(INIT_SCRIPT) clean: @rm -rf $(CACHE) install: uninstall startup-enable .update .blender .libav .nodejs .npm .mongodb update-ip @echo "\33[31;5mO computador deve ser reiniciado para concluir o processo\33[0m" uninstall: clean startup-disable @sudo rm -rf "./node_modules" @sudo rm -f "./wikilibras_server" @sudo rm -rf "./node_modules" @sudo rm -rf "$$HOME/.forever" @sudo rm -rf "$$HOME/.node-gyp" @sudo rm -rf "$$HOME/.npm" .blender: @sudo apt-get -y install blender @test -d "/usr/share/blender$(BLENDER_VER)/" || make -s .blender_stable .blender_stable: @wget $(BLENDER_URL) -NcO "$$HOME/$(BLENDER_DIR).tar.bz2" @cd "$$HOME" && \ tar -xf $(BLENDER_BZ2) && \ sudo rm -rf "/usr/share/blender$(BLENDER_VER)/" && \ sudo mv -f "$(BLENDER_DIR)" "/usr/share/blender$(BLENDER_VER)" && \ sudo ln -sf "/usr/share/blender$(BLENDER_VER)/blender" "/usr/bin/blender" && \ sudo ln -sf "/usr/share/blender$(BLENDER_VER)/blenderplayer" "/usr/bin/blenderplayer" .libav: @sudo apt-get -y install libav-tools .mongodb: @sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 @echo "deb http://repo.mongodb.org/apt/ubuntu "$$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee "/etc/apt/sources.list.d/mongodb-org-3.0.list" @sudo apt-get update @sudo apt-get install -y mongodb-org @sudo rm "/etc/apt/sources.list.d/mongodb-org-3.0.list" .nodejs: @sudo apt-get -y install nodejs @sudo ln -sf "/usr/bin/nodejs" "/usr/bin/node" .npm: @sudo apt-get -y install gcc make build-essential npm @sudo ln -sf "$$HOME" "wikilibras_server" @sudo npm cache clean @sudo npm install -g forever node-gyp cors @sudo npm link forever node-gyp cors @sudo npm install update-ip: @cp helpers/properties.js.template helpers/properties.js @sed -e '/^var host/{s/.*/var host = \"localhost\";/}' -i "./helpers/properties.js" @if [ "${LOCALHOST}" != "" ]; then sed -e '/^var host/{s/.*/var host = \"${LOCALHOST}\";/}' -i "./helpers/properties.js"; fi @cat "./helpers/properties.js" | grep "var host" @cat "./helpers/properties.js" | grep "var port" .update: @sudo apt-get update list: @sudo forever list run: @sudo nodejs $(SERVER) start: @sudo forever start --spinSleepTime 1000 --minUptime 1000 -a -l $(LOG) -o $(LOG) -e $(LOG) $(SERVER) @echo "`date` Service started ... " >> $(LOG) stop: @sudo forever stop $(SERVER) @echo "`date` Service stopped ... " >> $(LOG)