source: zero-lliurex-adobeair/trunk/fuentes/zero-lliurex-adobeair.zlaunchers/zero-lliurex-adobeair-scratch2.zmd @ 2076

Last change on this file since 2076 was 2076, checked in by Juanma, 3 years ago

Added installation checks

File size: 9.8 KB
Line 
1#!/bin/bash
2
3export TEXTDOMAIN="zero-lliurex-adobeair"
4MSG_NO_INTERNET=$(gettext "No Internet Connection has been detected. Please, check it")
5MSG_BAJAR=$(gettext "Scratch 2  will now be downloaded. Aprox. size 49,5MB")
6PACKAGE_NAME="edu.media.mit.scratch2editor"
7URL_SCRATCH="http://lliurex.net/recursos-edu/misc/"
8VERSION="Scratch-latest.air"
9LOG_FILE="/root/.appdata/Adobe/AIR/Logs/Install.log"
10TMP_LOG="/tmp/zero-scratch.log"
11DEPENDS="adobeair"
12ICON_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
16UPDATE_FILE="/opt/AdobeAirApp/Scratch 2/share/META-INF/AIR/application.xml"
17VERSION_ORIG_NUMBER="442"
18VERSION_LLIUREX_NUMBER="901"
19
20zero-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 5000 -u normal -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 5000 -u normal -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
69elaula=www.lliurexforever.jai
70
71n4d-vars listvars | grep HOSTNAME
72
73if [ $? -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
77fi
78
79
80
81#Comprobar conexión a internet e instalar
82rc=0
83zero-testnet|| rc=1
84if [ $rc -eq 0 ]
85        then
86                #Problemas al instalar adobeair requieren de la creación manual de links
87                su -c "notify-send -t 5000 -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 5000 -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 5000 -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
164fi
165
166#Modificamos el fichero de la actualizacion para que no chequee en el arranque
167sed -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.
169sed -i -e 's/Categories=Utility;/Categories=Application;Education;/g' $ICON_FILE
170sed -i -e 's/GenericName=Scratch\ 2\ Editor/GenericName=Scratch\ 2\ Editor/g' $ICON_FILE
171sed -i -e 's/Name=Scratch\ 2\ Editor/Name=Scratch\ 2\ Editor/g' $ICON_FILE
172sed -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
175sed -i "/ca_ES/d" $ICON_FILE
176sed -i "/\[es\]/d" $ICON_FILE
177sed -i "/qcv_ES/d" $ICON_FILE
178#Añadido
179echo "Name[ca_ES@valencia]=Scratch 2 Editor" >> $ICON_FILE
180echo "Comment[ca_ES@valencia]=Sistema de programació visual per a l'educació" >> $ICON_FILE
181echo "Name[ca_ES.UTF-8@valencia]=Scratch 2 Editor" >> $ICON_FILE
182echo "Comment[ca_ES.UTF-8@valencia]=Sistema de programació visual per a l'educació" >> $ICON_FILE
183echo "Name[es]=Scratch 2 Editor" >> $ICON_FILE
184echo "Comment[es]=Sistema de programación visual para la educación" >> $ICON_FILE
185echo "Name[qcv_ES]=Scratch 2 Editor" >> $ICON_FILE
186echo "Comment[qcv_ES]=Sistema de programació visual per a l'educació" >> $ICON_FILE
187
188
189zero-center remove-pulsating-color zero-lliurex-adobeair-scratch2
190zero-center set-configured zero-lliurex-adobeair-scratch2
191
192exit 0
Note: See TracBrowser for help on using the repository browser.