#!/bin/bash export TEXTDOMAIN="zero-lliurex-adobeair" MSG_NO_INTERNET=$(gettext "No Internet Connection has been detected. Please, check it") MSG_BAJAR=$(gettext "Scratch 2 will now be downloaded. Aprox. size 49,5MB") PACKAGE_NAME="edu.media.mit.scratch2editor" URL_SCRATCH="http://lliurex.net/recursos-edu/misc/" VERSION="Scratch-latest.air" LOG_FILE="/root/.appdata/Adobe/AIR/Logs/Install.log" TMP_LOG="/tmp/zero-scratch.log" DEPENDS="adobeair" ICON_FILE="/usr/share/gnome/applications/edu.media.mit.scratch2editor.desktop" #Para el control de versiones partimos de que la 437 corresponde a la 900 y asi incrementalmente en ambos casos en el fichero indicado UPDATE_FILE="/opt/AdobeAirApp/Scratch 2/share/META-INF/AIR/application.xml" VERSION_ORIG_NUMBER="455" VERSION_LLIUREX_NUMBER="904" zero-center add-pulsating-color zero-lliurex-adobeair-scratch2 #Testeamos si el paquete esta instalado, borrandolo caso afirmativo o nada caso negativo. #zero-repos-update #zero-reinstall "$PACKAGE_NAME" TEST=$( dpkg-query -s $PACKAGE_NAME 2> /dev/null| grep Status | cut -d " " -f 4 ) if [ "$TEST" = 'installed' ]; then echo "Package $VERSION already installed, we have to uninstall it" 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 touch $TMP_LOG (apt-get remove -y edu.media.mit.scratch2editor > $TMP_LOG ; rm $TMP_LOG) & #Mientras que el fichero de ayuda existe es que estamos instalando #Cuando ya no exista saldremos del while while [ -f "$TMP_LOG" ]; do #En la variable PERCENT almacenamos el tanto por cien que llevamos de descarga #accediento a la ultima linea escrita en el fichero de ayuda y seleccionando solo el dato que necesitamos. VAR=$( tail -1 $TMP_LOG 2>/dev/null ) #Hacemos echo de los datos que necesita el zenity echo "#Uninstalling.......$VAR" | cut -c1-85 #por ultimo entubamos la salida al zenity progress para que nos muestre el resultado en pantalla done | zenity --progress --auto-close --pulsate --width 500 --title="Zero-Center-Uninstaller" --no-cancel fi #Antes de nada comprobamos que existe el Adobe air en el Sistema sino se instala TEST=$( dpkg-query -s $DEPENDS 2> /dev/null| grep Status | cut -d " " -f 4 ) if [ "$TEST" != 'installed' ]; then echo "Package $DEPENDS is not installed in your system, it's necessary........ we'll do it" 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 /usr/share/zero-center/zmds/zero-lliurex-adobeair.zmd else echo "Dependency from package $DEPENDS is installed, do nothing" fi #Comprobamos que se esta instalado porque sino abortamos la instalacion TEST=$( dpkg-query -s $DEPENDS 2> /dev/null| grep Status | cut -d " " -f 4 ) if [ "$TEST" != 'installed' ]; then 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 & zero-center remove-pulsating-color zero-lliurex-adobeair-scratch2 zero-center set-non-configured zero-lliurex-adobeair-scratch2 zero-center set-non-configured zero-lliurex-adobeair exit 1 fi #Comprobar conexión a internet elaula=www.lliurexforever.jai n4d-vars listvars | grep HOSTNAME if [ $? -eq 0 ]; then elhost=$(n4d-vars getvalues HOSTNAME | cut -d"'" -f2) eldominio=$(n4d-vars getvalues INTERNAL_DOMAIN | cut -d"'" -f2) elaula=$elhost"."$eldominio fi #Comprobar conexión a internet e instalar rc=0 zero-testnet|| rc=1 if [ $rc -eq 0 ] then #Problemas al instalar adobeair requieren de la creación manual de links su -c "notify-send -t 800 -u critical -i /usr/share/icons/lliurex-neu/scalable/apps/zero-center.svg 'Zero-Installer' '$MSG_BAJAR'" $USER rc=0 host $elaula || rc=1 if [ $rc -eq 0 ] then rc=0 dpkg -l zero-server-wizard || rc=1 if [ $rc -eq 1 ]; then #echo "Estoy en un aula añado el proxy" export http_proxy="proxy:3128" fi #Borramos el fichero si existe antes de volverlo a bajar if [ -f /tmp/$VERSION ]; then #echo "existe el fichero de descarga, lo borro" rm /tmp/$VERSION fi #echo "Descargo el Scratch" su $USER -c "zero-lliurex-axel $URL_SCRATCH$VERSION /tmp" else #Borramos el fichero si existe antes de volverlo a bajar if [ -f /tmp/$VERSION ]; then #echo "existe el fichero de descarga, lo borro" rm /tmp/$VERSION fi #echo "Fuera del IF tb bajo el scratch" su $USER -c "zero-lliurex-axel $URL_SCRATCH$VERSION /tmp" fi if [ ! -f /tmp/$VERSION ]; then 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 & zero-center remove-pulsating-color zero-lliurex-adobeair-scratch2 zero-center set-non-configured zero-lliurex-adobeair-scratch2 exit 1 else echo "$VERSION is downloaded in your system, install it now..............." fi #echo "YA ESTA BAJADO AHORA HAGO CHMOD" chmod +x /tmp/$VERSION #echo "HECHO CHMOD, AHORA VOY A CREAR EL ZERO-INSTALL.LOG" touch /tmp/zero-install.log #echo "VAMOS A POR LA INSTALACION EN SEGUNDO PLANO" #Creo un fichero de ayuda para meter lo que devuelva por pantalla y lo borro luego para saber que termino lo que estaba haciendo (/usr/bin/Adobe\ AIR\ Application\ Installer -silent -eulaAccepted -location /opt/AdobeAirApp /tmp/$VERSION > /tmp/zero-install.log ; rm /tmp/zero-install.log) & #Mientras que el fichero de ayuda existe es que estamos instalando #Cuando ya no exista saldremos del while #echo "INSTALACION LANZADA AHORA EL LOG PARA VISUALIZACION" while [ -f "/tmp/zero-install.log" ]; do #En la variable PERCENT almacenamos el tanto por cien que llevamos de descarga #accediento a la ultima linea escrita en el fichero de ayuda y seleccionando solo el dato que necesitamos. VAR=$( tail -1 $LOG_FILE 2>/dev/null ) #Hacemos echo de los datos que necesita el zenity echo "#Installing.......$VAR" | cut -c1-85 #por ultimo entubamos la salida al zenity progress para que nos muestre el resultado en pantalla done | zenity --progress --auto-close --pulsate --width 500 --title="Zero-Center-Installer" --no-cancel > /dev/null 2>&1 #Compruebo que se instalo bien tail -1 $LOG_FILE | cut -d "]" -f 3 | grep 0 if [ "$?" = "0" ]; then echo "Zero-center-------Your package $VERSION has been installed in your system" echo "Zero-center-------Your package $2 has been $FINISHED in your system" >> /tmp/zero-installer.log 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 zenity --info --title="Zero-installer" --text="Your package $VERSION has been installed in your system" > /dev/null 2>&1 & else 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 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 zero-center remove-pulsating-color zero-lliurex-adobeair-scratch2 zero-center set-non-configured zero-lliurex-adobeair-scratch2 exit 1 fi else zenity --error --text="$MSG_NO_INTERNET" zero-center remove-pulsating-color zero-lliurex-adobeair-scratch2 exit 1 fi #Modificamos el fichero de la actualizacion para que no chequee en el arranque sed -i -e "s%$VERSION_ORIG_NUMBER<\/versionNumber>%$VERSION_LLIUREX_NUMBER<\/versionNumber>%g" "$UPDATE_FILE" #El desktop que se genera lo modificamos para que aparezca en la categoria de educación. sed -i -e 's/Categories=Utility;/Categories=Application;Education;/g' $ICON_FILE sed -i -e 's/GenericName=Scratch\ 2\ Editor/GenericName=Scratch\ 2\ Editor/g' $ICON_FILE sed -i -e 's/Name=Scratch\ 2\ Editor/Name=Scratch\ 2\ Editor/g' $ICON_FILE sed -i -e 's/Comment=<>/Comment=Scratch\ 2\ Editor/g' $ICON_FILE #Y le añadimos los Comentarios y traducciones, aunque antes las eliminamos si existian para que no esten duplicadas en el fichero #Eliminacion sed -i "/ca_ES/d" $ICON_FILE sed -i "/\[es\]/d" $ICON_FILE sed -i "/qcv_ES/d" $ICON_FILE #Añadido echo "Name[ca_ES@valencia]=Scratch 2 Editor" >> $ICON_FILE echo "Comment[ca_ES@valencia]=Sistema de programació visual per a l'educació" >> $ICON_FILE echo "Name[ca_ES.UTF-8@valencia]=Scratch 2 Editor" >> $ICON_FILE echo "Comment[ca_ES.UTF-8@valencia]=Sistema de programació visual per a l'educació" >> $ICON_FILE echo "Name[es]=Scratch 2 Editor" >> $ICON_FILE echo "Comment[es]=Sistema de programación visual para la educación" >> $ICON_FILE echo "Name[qcv_ES]=Scratch 2 Editor" >> $ICON_FILE echo "Comment[qcv_ES]=Sistema de programació visual per a l'educació" >> $ICON_FILE zero-center remove-pulsating-color zero-lliurex-adobeair-scratch2 zero-center set-configured zero-lliurex-adobeair-scratch2 exit 0