Makefile
3.95 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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# 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#<path-to-project>#$(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)