1 | #!/bin/bash |
---|
2 | |
---|
3 | export TEXTDOMAIN="zero-lliurex-adobeair" |
---|
4 | MSG_NO_INTERNET=$(gettext "No Internet Connection has been detected. Please, check it") |
---|
5 | MSG_BAJAR=$(gettext "Scratch 2 will now be downloaded. Aprox. size 49,5MB") |
---|
6 | PACKAGE_NAME="edu.media.mit.scratch2editor" |
---|
7 | URL_SCRATCH="http://lliurex.net/recursos-edu/misc/" |
---|
8 | VERSION="Scratch-latest.air" |
---|
9 | LOG_FILE="/root/.appdata/Adobe/AIR/Logs/Install.log" |
---|
10 | TMP_LOG="/tmp/zero-scratch.log" |
---|
11 | DEPENDS="adobeair" |
---|
12 | ICON_FILE="/usr/share/gnome/applications/edu.media.mit.scratch2editor.desktop" |
---|
13 | |
---|
14 | |
---|
15 | #Para el control de versiones partimos de que la 437 corresponde a la 900 y asi incrementalmente en ambos casos en el fichero indicado |
---|
16 | UPDATE_FILE="/opt/AdobeAirApp/Scratch 2/share/META-INF/AIR/application.xml" |
---|
17 | VERSION_ORIG_NUMBER="442" |
---|
18 | VERSION_LLIUREX_NUMBER="901" |
---|
19 | |
---|
20 | zero-center add-pulsating-color zero-lliurex-adobeair-scratch2 |
---|
21 | |
---|
22 | #Testeamos si el paquete esta instalado, borrandolo caso afirmativo o nada caso negativo. |
---|
23 | #zero-repos-update |
---|
24 | #zero-reinstall "$PACKAGE_NAME" |
---|
25 | TEST=$( dpkg-query -s $PACKAGE_NAME 2> /dev/null| grep Status | cut -d " " -f 4 ) |
---|
26 | if [ "$TEST" = 'installed' ]; then |
---|
27 | echo "Package $VERSION already installed, we have to uninstall it" |
---|
28 | su -c "notify-send -t 2000 -u critical -i /usr/share/icons/lliurex-neu/scalable/apps/zero-center.svg 'Zero-Installer' 'Scratch is already installed in your system, now we are goig to remove it and install it again.'" $USER |
---|
29 | touch $TMP_LOG |
---|
30 | (apt-get remove -y edu.media.mit.scratch2editor > $TMP_LOG ; rm $TMP_LOG) & |
---|
31 | #Mientras que el fichero de ayuda existe es que estamos instalando |
---|
32 | #Cuando ya no exista saldremos del while |
---|
33 | while [ -f "$TMP_LOG" ]; do |
---|
34 | #En la variable PERCENT almacenamos el tanto por cien que llevamos de descarga |
---|
35 | #accediento a la ultima linea escrita en el fichero de ayuda y seleccionando solo el dato que necesitamos. |
---|
36 | VAR=$( tail -1 $TMP_LOG 2>/dev/null ) |
---|
37 | #Hacemos echo de los datos que necesita el zenity |
---|
38 | echo "#Uninstalling.......$VAR" | cut -c1-85 |
---|
39 | #por ultimo entubamos la salida al zenity progress para que nos muestre el resultado en pantalla |
---|
40 | done | zenity --progress --auto-close --pulsate --width 500 --title="Zero-Center-Uninstaller" --no-cancel |
---|
41 | fi |
---|
42 | |
---|
43 | |
---|
44 | #Antes de nada comprobamos que existe el Adobe air en el Sistema sino se instala |
---|
45 | |
---|
46 | TEST=$( dpkg-query -s $DEPENDS 2> /dev/null| grep Status | cut -d " " -f 4 ) |
---|
47 | if [ "$TEST" != 'installed' ]; then |
---|
48 | echo "Package $DEPENDS is not installed in your system, it's necessary........ we'll do it" |
---|
49 | su -c "notify-send -t 2000 -u critical -i /usr/share/icons/lliurex-neu/scalable/apps/zero-center.svg 'Zero-Installer' 'Package $DEPENDS is not installed in your system, it is necessary........ we are goig to do it'" $USER |
---|
50 | /usr/share/zero-center/zmds/zero-lliurex-adobeair.zmd |
---|
51 | else |
---|
52 | echo "Dependency from package $DEPENDS is installed, do nothing" |
---|
53 | fi |
---|
54 | |
---|
55 | |
---|
56 | #Comprobamos que se esta instalado porque sino abortamos la instalacion |
---|
57 | TEST=$( dpkg-query -s $DEPENDS 2> /dev/null| grep Status | cut -d " " -f 4 ) |
---|
58 | if [ "$TEST" != 'installed' ]; then |
---|
59 | zenity --info --title="Zero-installer" --text="Your package $DEPENDS has a problem to be installed in your system, and Scratch need it for install it, please retry again or contact with Lliurex Team at http://mestreacasa.gva.es/web/lliurex/forums" > /dev/null 2>&1 & |
---|
60 | zero-center remove-pulsating-color zero-lliurex-adobeair-scratch2 |
---|
61 | zero-center set-non-configured zero-lliurex-adobeair-scratch2 |
---|
62 | zero-center set-non-configured zero-lliurex-adobeair |
---|
63 | exit 1 |
---|
64 | fi |
---|
65 | |
---|
66 | |
---|
67 | |
---|
68 | #Comprobar conexión a internet |
---|
69 | elaula=www.lliurexforever.jai |
---|
70 | |
---|
71 | n4d-vars listvars | grep HOSTNAME |
---|
72 | |
---|
73 | if [ $? -eq 0 ]; then |
---|
74 | elhost=$(n4d-vars getvalues HOSTNAME | cut -d"'" -f2) |
---|
75 | eldominio=$(n4d-vars getvalues INTERNAL_DOMAIN | cut -d"'" -f2) |
---|
76 | elaula=$elhost"."$eldominio |
---|
77 | fi |
---|
78 | |
---|
79 | |
---|
80 | |
---|
81 | #Comprobar conexión a internet e instalar |
---|
82 | rc=0 |
---|
83 | zero-testnet|| rc=1 |
---|
84 | if [ $rc -eq 0 ] |
---|
85 | then |
---|
86 | #Problemas al instalar adobeair requieren de la creación manual de links |
---|
87 | su -c "notify-send -t 800 -u critical -i /usr/share/icons/lliurex-neu/scalable/apps/zero-center.svg 'Zero-Installer' '$MSG_BAJAR'" $USER |
---|
88 | rc=0 |
---|
89 | host $elaula || rc=1 |
---|
90 | if [ $rc -eq 0 ] |
---|
91 | then |
---|
92 | rc=0 |
---|
93 | dpkg -l zero-server-wizard || rc=1 |
---|
94 | if [ $rc -eq 1 ]; then |
---|
95 | #echo "Estoy en un aula añado el proxy" |
---|
96 | export http_proxy="proxy:3128" |
---|
97 | fi |
---|
98 | #Borramos el fichero si existe antes de volverlo a bajar |
---|
99 | |
---|
100 | if [ -f /tmp/$VERSION ]; then |
---|
101 | #echo "existe el fichero de descarga, lo borro" |
---|
102 | rm /tmp/$VERSION |
---|
103 | fi |
---|
104 | #echo "Descargo el Scratch" |
---|
105 | su $USER -c "zero-lliurex-axel $URL_SCRATCH$VERSION /tmp" |
---|
106 | else |
---|
107 | #Borramos el fichero si existe antes de volverlo a bajar |
---|
108 | |
---|
109 | if [ -f /tmp/$VERSION ]; then |
---|
110 | #echo "existe el fichero de descarga, lo borro" |
---|
111 | rm /tmp/$VERSION |
---|
112 | fi |
---|
113 | #echo "Fuera del IF tb bajo el scratch" |
---|
114 | su $USER -c "zero-lliurex-axel $URL_SCRATCH$VERSION /tmp" |
---|
115 | fi |
---|
116 | |
---|
117 | if [ ! -f /tmp/$VERSION ]; then |
---|
118 | zenity --info --title="Zero-installer" --text="Your package $VERSION has a problem to be installed in your system, please retry again or contact with Lliurex Team at http://mestreacasa.gva.es/web/lliurex/forums" > /dev/null 2>&1 & |
---|
119 | zero-center remove-pulsating-color zero-lliurex-adobeair-scratch2 |
---|
120 | zero-center set-non-configured zero-lliurex-adobeair-scratch2 |
---|
121 | exit 1 |
---|
122 | else |
---|
123 | echo "$VERSION is downloaded in your system, install it now..............." |
---|
124 | fi |
---|
125 | #echo "YA ESTA BAJADO AHORA HAGO CHMOD" |
---|
126 | chmod +x /tmp/$VERSION |
---|
127 | #echo "HECHO CHMOD, AHORA VOY A CREAR EL ZERO-INSTALL.LOG" |
---|
128 | touch /tmp/zero-install.log |
---|
129 | |
---|
130 | #echo "VAMOS A POR LA INSTALACION EN SEGUNDO PLANO" |
---|
131 | #Creo un fichero de ayuda para meter lo que devuelva por pantalla y lo borro luego para saber que termino lo que estaba haciendo |
---|
132 | (/usr/bin/Adobe\ AIR\ Application\ Installer -silent -eulaAccepted -location /opt/AdobeAirApp /tmp/$VERSION > /tmp/zero-install.log ; rm /tmp/zero-install.log) & |
---|
133 | #Mientras que el fichero de ayuda existe es que estamos instalando |
---|
134 | #Cuando ya no exista saldremos del while |
---|
135 | #echo "INSTALACION LANZADA AHORA EL LOG PARA VISUALIZACION" |
---|
136 | while [ -f "/tmp/zero-install.log" ]; do |
---|
137 | #En la variable PERCENT almacenamos el tanto por cien que llevamos de descarga |
---|
138 | #accediento a la ultima linea escrita en el fichero de ayuda y seleccionando solo el dato que necesitamos. |
---|
139 | VAR=$( tail -1 $LOG_FILE 2>/dev/null ) |
---|
140 | #Hacemos echo de los datos que necesita el zenity |
---|
141 | echo "#Installing.......$VAR" | cut -c1-85 |
---|
142 | #por ultimo entubamos la salida al zenity progress para que nos muestre el resultado en pantalla |
---|
143 | done | zenity --progress --auto-close --pulsate --width 500 --title="Zero-Center-Installer" --no-cancel > /dev/null 2>&1 |
---|
144 | #Compruebo que se instalo bien |
---|
145 | tail -1 $LOG_FILE | cut -d "]" -f 3 | grep 0 |
---|
146 | if [ "$?" = "0" ]; then |
---|
147 | |
---|
148 | echo "Zero-center-------Your package $VERSION has been installed in your system" |
---|
149 | echo "Zero-center-------Your package $2 has been $FINISHED in your system" >> /tmp/zero-installer.log |
---|
150 | su -c "notify-send -t 2000 -u critical -i /usr/share/icons/lliurex-neu/scalable/apps/zero-center.svg 'Zero-Installer' 'Your package $VERSION has been installed in your system'" $USER |
---|
151 | zenity --info --title="Zero-installer" --text="Your package $VERSION has been installed in your system" > /dev/null 2>&1 & |
---|
152 | else |
---|
153 | zenity --info --title="Zero-installer" --text="Your package $VERSION has a problem to be installed in your system, please see more info at $LOG_FILE" > /dev/null 2>&1 |
---|
154 | su -c "notify-send -t 2000 -u critical -i /usr/share/icons/lliurex-neu/scalable/apps/zero-center.svg 'Zero-Installer' 'Your package $VERSION has a problem to be installed in your system, please see more info at $LOG_FILE'" $USER |
---|
155 | zero-center remove-pulsating-color zero-lliurex-adobeair-scratch2 |
---|
156 | zero-center set-non-configured zero-lliurex-adobeair-scratch2 |
---|
157 | exit 1 |
---|
158 | fi |
---|
159 | |
---|
160 | else |
---|
161 | zenity --error --text="$MSG_NO_INTERNET" |
---|
162 | zero-center remove-pulsating-color zero-lliurex-adobeair-scratch2 |
---|
163 | exit 1 |
---|
164 | fi |
---|
165 | |
---|
166 | #Modificamos el fichero de la actualizacion para que no chequee en el arranque |
---|
167 | sed -i -e "s%<versionNumber>$VERSION_ORIG_NUMBER<\/versionNumber>%<versionNumber>$VERSION_LLIUREX_NUMBER<\/versionNumber>%g" "$UPDATE_FILE" |
---|
168 | #El desktop que se genera lo modificamos para que aparezca en la categoria de educación. |
---|
169 | sed -i -e 's/Categories=Utility;/Categories=Application;Education;/g' $ICON_FILE |
---|
170 | sed -i -e 's/GenericName=Scratch\ 2\ Editor/GenericName=Scratch\ 2\ Editor/g' $ICON_FILE |
---|
171 | sed -i -e 's/Name=Scratch\ 2\ Editor/Name=Scratch\ 2\ Editor/g' $ICON_FILE |
---|
172 | sed -i -e 's/Comment=<>/Comment=Scratch\ 2\ Editor/g' $ICON_FILE |
---|
173 | #Y le añadimos los Comentarios y traducciones, aunque antes las eliminamos si existian para que no esten duplicadas en el fichero |
---|
174 | #Eliminacion |
---|
175 | sed -i "/ca_ES/d" $ICON_FILE |
---|
176 | sed -i "/\[es\]/d" $ICON_FILE |
---|
177 | sed -i "/qcv_ES/d" $ICON_FILE |
---|
178 | #Añadido |
---|
179 | echo "Name[ca_ES@valencia]=Scratch 2 Editor" >> $ICON_FILE |
---|
180 | echo "Comment[ca_ES@valencia]=Sistema de programació visual per a l'educació" >> $ICON_FILE |
---|
181 | echo "Name[ca_ES.UTF-8@valencia]=Scratch 2 Editor" >> $ICON_FILE |
---|
182 | echo "Comment[ca_ES.UTF-8@valencia]=Sistema de programació visual per a l'educació" >> $ICON_FILE |
---|
183 | echo "Name[es]=Scratch 2 Editor" >> $ICON_FILE |
---|
184 | echo "Comment[es]=Sistema de programación visual para la educación" >> $ICON_FILE |
---|
185 | echo "Name[qcv_ES]=Scratch 2 Editor" >> $ICON_FILE |
---|
186 | echo "Comment[qcv_ES]=Sistema de programació visual per a l'educació" >> $ICON_FILE |
---|
187 | |
---|
188 | |
---|
189 | zero-center remove-pulsating-color zero-lliurex-adobeair-scratch2 |
---|
190 | zero-center set-configured zero-lliurex-adobeair-scratch2 |
---|
191 | |
---|
192 | exit 0 |
---|