-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.sh
75 lines (60 loc) · 2.17 KB
/
build.sh
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
#!/bin/bash
sed -i 's/SCREEN_TO_OPEN_ROOT = 1 # 1 Para la segunda pantalla y 0 para la primera/SCREEN_TO_OPEN_ROOT = 0 # 1 Para la segunda pantalla y 0 para la primera/g' config.py
help_panel() {
echo "Uso: $0 [nombre del ejecutable] [-h] [-s]"
echo " -h: Muestra este panel de ayuda."
echo " -s: Marca la versión como estable."
echo " -r: Removes all the previous versions"
exit
}
stable=false
while getopts ":hsr" opt; do
case ${opt} in
h )
help_panel
;;
s )
stable=true
;;
r )
rm executables/latest/*
rm executables/old/*
rm executables/stable/*
;;
\? )
echo "Opción inválida: -$OPTARG" 1>&2
exit 1
;;
esac
done
shift $((OPTIND -1))
if [[ -z $1 ]]; then
echo "Debes introducir un parámetro con el nombre del ejecutable. Ejemplo: 9.0.2"
exit 1
fi
# Comprueba si pyinstaller está instalado
if ! pip show pyinstaller > /dev/null; then
pip install pyinstaller
fi
# Comprueba si las carpetas existen antes de intentar crearlas
if [ ! -d "executables/stable" ]; then
mkdir -p executables/stable
fi
if [ ! -d "executables/latest" ]; then
mkdir -p executables/latest
fi
if [ ! -d "executables/old" ]; then
mkdir -p executables/old
fi
pyinstaller --noconfirm --onefile --windowed --icon "./icons/mqp.ico" --add-data "./icons;icons/" --add-data "./figures;figures/" --add-data "./locales;locales/" --add-data "./utils/auxi.py;." --add-data "./utils/config_menu.py;." --add-data "./utils/globals.py;." --add-data "./config.py;." "./main.py"
mv executables/latest/* executables/old
mv dist/main.exe executables/latest/MQP_V$1.exe
if [[ $stable = true ]]; then
cp executables/latest/MQP_V$1.exe executables/stable/MQP_V$1.exe
fi
# Mueve todas las versiones que no sean estables a la carpeta 'old'
if [[ $stable = true ]]; then
find executables/stable -type f ! -name "MQP_V$1.exe" -exec bash -c 'mv $0 executables/old/$(basename $0 .exe)_stable.exe' {} \;
fi
rm -rf build dist output main.spec
sed -i 's/SCREEN_TO_OPEN_ROOT = 0 # 1 Para la segunda pantalla y 0 para la primera/SCREEN_TO_OPEN_ROOT = 1 # 1 Para la segunda pantalla y 0 para la primera/g' config.py