-
Notifications
You must be signed in to change notification settings - Fork 50
/
Makefile
207 lines (177 loc) · 7.54 KB
/
Makefile
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
N=[0m
V=[01;32m
VERSION=1.4.12
VPS_HOST=162.243.50.192
all:
@echo ""
@echo "Comandos disponibles versión: (${VERSION})"
@echo ""
@echo " $(V)actualizar$(N) Actualiza pilas y los submodulos."
@echo " $(V)ejecutar$(N) Ejecuta pilas sin instarlo."
@echo " $(V)utest$(N) Lanza todos los test de unidad."
@echo " $(V)ui$(N) Actualiza todas las interfaces de usuario."
@echo " $(V)manual$(N) Actualiza el manual y lo copia a data/manual."
@echo " $(V)api$(N) Actualiza la API y la copia a data/api."
@echo " $(V)rm_pyc$(N) Borra todos los archivos .pyc del proyecto."
@echo " $(V)clean$(N) Limpia los archivos temporales."
@echo ""
@echo " $(V)log$(N) Muestra los ultimos commits respecto del tag anterior."
@echo " $(V)version_p$(N) (patch) Genera el changelog y la informacion de versión."
@echo " $(V)version_m$(N) (minor) Genera el changelog y la informacion de versión."
@echo " $(V)version_M$(N) (mayor) Genera el changelog y la informacion de versión."
@echo " $(V)ver_sync$(N) Sube la nueva version al servidor."
@echo " $(V)ejemplos$(N) Prueba los ejemplos uno a uno."
@echo ""
@echo " $(V)dist$(N) Genera todos los binarios (excepto .deb)"
@echo " $(V)distmac$(N) Genera la versión compilada para macos."
@echo " $(V)distwin$(N) Genera la versión compilada para windows."
@echo ""
@echo " $(V)upload$(N) Intenta subir los binarios de windows y mac a dropbox."
@echo ""
actualizar:
git pull
git submodule update --init
ejecutar:
python bin/pilasengine
test_mac:
python bin/pilasengine
ejecutar_mac: test_mac
.PHONY: test ejemplos
version_p:
@bumpversion --current-version ${VERSION} patch setup.py setup-mac.py pilasengine/__init__.py ./extras/actualizar_version.py ./extras/instalador.nsi Makefile --list
make post_version
version_m:
@bumpversion --current-version ${VERSION} minor setup.py setup-mac.py pilasengine/__init__.py ./extras/actualizar_version.py ./extras/instalador.nsi Makefile --list
make post_version
version_M:
@bumpversion --current-version ${VERSION} major setup.py setup-mac.py pilasengine/__init__.py ./extras/actualizar_version.py ./extras/instalador.nsi Makefile --list
make post_version
post_version:
@python extras/actualizar_version.py
@echo "Es recomendable escribir el comando que genera los tags y sube todo a github:"
@echo ""
@echo "make ver_sync"
ver_sync:
git commit -am 'release ${VERSION}'
git tag '${VERSION}'
git push
git push --all
git push --tags
utest:
@python -m unittest discover pilasengine/tests '*.py'
manual:
mkdir -p data/manual
cd ../pilas-manual; make generar;
cp -R -f ../pilas-manual/site/* data/manual/
git add data/manual
git commit -m "actualizando manual."
api:
mkdir -p data/api
cd ../pilas-api; make compilar;
cp -R -f ../pilas-api/build/html/* data/api/
git add data/api
git commit -m "actualizando api."
ui:
pyuic4 -xo pilasengine/asistente/asistente_base.py pilasengine/asistente/asistente.ui
pyuic4 -xo pilasengine/manual/manual_base.py pilasengine/manual/manual.ui
pyuic4 -xo pilasengine/api/api_base.py pilasengine/api/api.ui
pyuic4 -xo pilasengine/interprete/interprete_base.py pilasengine/interprete/interprete.ui
pyuic4 -xo pilasengine/interprete/editor_ui.py pilasengine/interprete/editor.ui
pyuic4 -xo pilasengine/interprete/lanas_ui.py pilasengine/interprete/lanas.ui
pyuic4 -xo pilasengine/configuracion/configuracion_base.py pilasengine/configuracion/configuracion.ui
@echo "Quitando la marca de fechas."
@sed -i '' '/Created:/d' pilasengine/asistente/asistente_base.py
@sed -i '' '/Created:/d' pilasengine/manual/manual_base.py
@sed -i '' '/Created:/d' pilasengine/interprete/interprete_base.py
@sed -i '' '/Created:/d' pilasengine/interprete/editor_ui.py
@sed -i '' '/Created:/d' pilasengine/interprete/lanas_ui.py
@sed -i '' '/Created:/d' pilasengine/configuracion/configuracion_base.py
clean:
rm -r -f *.dmg
rm -r -f dist build
directorio_dist:
@echo "Limpiando el directorio dist."
@rm -r -f dist
@mkdir -p dist
dist: directorio_dist distmac distwin
@echo "listo..."
@echo ""
@echo "$(V)Usa el comando 'make upload' para subir esta version a dropbox $(N)"
@echo "$(V)y por ssh a static.pilas-engine.com.ar.$(N)"
@echo ""
upload:
mkdir -p ~/Dropbox/Public/releases/pilas-engine/${VERSION}
cp dist/pilas-engine-${VERSION}.dmg ~/Dropbox/Public/releases/pilas-engine/${VERSION}/
cp dist/pilas-engine_${VERSION}.exe ~/Dropbox/Public/releases/pilas-engine/${VERSION}/
@echo ""
@echo "$(V)Se están subiendo los archivos a dropbox y static.pilas-engine.com.ar$(N)"
@echo ""
@echo "$(V)Recordá que luego de subir estos archivos deberías actualizar la web.$(N)"
@echo "$(V) (con el comando: make release, make deploy)$(N)"
@echo ""
make upload_to_vps
upload_to_vps:
scp -r ~/Dropbox/Public/releases/pilas-engine/${VERSION} ${VPS_HOST}:/home/hugoruscitti/static.pilas-engine.com.ar/pilas-engine/
distmac:
@mkdir -p tmp
@echo "Limpiando escenario"
@rm -r -f __MACOSX
@rm -r -f pilas-engine.app
@rm -r -f pilas-engine.app.zip
@echo "Copiando plantilla de aplicación para osx desde dropbox"
@cp ~/Dropbox/pilas-engine-bins/pilas-engine.app.zip ./
@echo "Descomprimiendo..."
@unzip pilas-engine.app.zip > tmp/log_unzip_pilas-engine.zip.log
@echo "Actualizando contenido..."
@rm pilas-engine.app.zip
@rm -r -f pilas-engine.app/Contents/Resources/data
@rm -r -f pilas-engine.app/Contents/Resources/lib/python2.7/pilasengine
@rm -r -f pilas-engine.app/Contents/Resources/lib/python2.7/pilas
@cp -r -f data pilas-engine.app/Contents/Resources/
@cp -r -f pilasengine pilas-engine.app/Contents/Resources/lib/python2.7/
@cp -r -f pilas pilas-engine.app/Contents/Resources/lib/python2.7/
@rm -r -f dist/pilas-engine-${VERSION}.dmg
@echo "Generando imagen dist/pilas-engine-${VERSION}.dmg (esto tarda un huevo, paciencia ...)"
@mkdir -p dist
#@hdiutil create -srcfolder pilas-engine.app dist/pilas-engine-${VERSION}.dmg > tmp/log_creacion_dmg.log
@hdiutil create -srcfolder pilas-engine.app dist/pilas-engine-${VERSION}.dmg -size 400mb > tmp/log_creacion_dmg.log
@rm -r -f __MACOSX
@rm -r -f pilas-engine.app
@rm -r -f pilas-engine.app.zip
@echo "Todo OK!"
@echo "Los archivos generados están en el directorio dist/"
@echo "Se abre una ventana para mostrarlos."
@open dist
distmac_anterior: clean
python setup-mac.py py2app --no-strip > log_distmac.txt
hdiutil create dist/pilas-engine-${VERSION}.dmg -srcfolder ./dist/pilas-engine.app -size 200mb
@echo "Los archivos generados están en el directorio dist/"
@echo "Se abre una ventana para mostrarlos."
@open dist
rm_pyc: clean
find . -name "*.pyc" -exec rm -rf {} \;
ejemplos:
python extras/probar_ejemplos.py
distwin:
@mkdir -p tmp
@echo "Limpiando escenario"
@rm -r -f tmp/pilas-engine
@rm -r -f tmp/__MACOSX
@echo "Copiando plantilla de aplicación para windows desde dropbox"
@cp ~/Dropbox/pilas-engine-bins/pilas-engine-cargador-windows.zip ./tmp
@echo "Descomprimiendo..."
@unzip tmp/pilas-engine-cargador-windows.zip -d tmp/ > tmp/log_unzip_pilas-engine.zip.log
@echo "Actualizando contenido..."
@cp -r -f data tmp/pilas-engine/
@cp -r -f pilasengine tmp/pilas-engine/
@cp -r -f pilas tmp/pilas-engine/
@cp extras/instalador.nsi tmp/pilas-engine
@echo "Generando el instalador para windows..."
@makensis tmp/pilas-engine/instalador.nsi > tmp/log_instalador.log
@mv tmp/pilas-engine/pilas-engine_${VERSION}.exe dist/
@echo "Todo OK!"
@echo "Los archivos generados están en el directorio dist/"
@echo "Se abre una ventana para mostrarlos."
@open dist
log:
git log ${VERSION}...HEAD --graph --oneline --decorate