source: zero-center/trunk/fuentes/install-files/usr/bin/zero-reinstall-list @ 5095

Last change on this file since 5095 was 5095, checked in by jrpelegrina, 3 years ago

WIP in fix some bugs in zero-center

  • Property svn:executable set to *
File size: 4.7 KB
Line 
1#!/bin/bash
2export TEXTDOMAIN="zero-center"
3
4MSG_REVIEW1=$(gettext "Some packages aren't in your repositories, and they aren't installed, you can see it in")
5MSG_REVIEW2=$(gettext "Please review your repositories and reinstall it again .")
6MSG_CONTACT=$(gettext "If you can't resolve the problem please contact with Lliurex Team at http://mestreacasa.gva.es/web/lliurex/forums")
7MSG_REMOVED=$(gettext "Removed")
8MSG_FINISH_INSTALLED=$(gettext "has been INSTALLED in your system, and you can view the log in")
9MSG_FINISH_SYSTEM1=$(gettext "has been")
10MSG_FINISH_SYSTEM=$(gettext "in your system, and you can view the log in")
11MSG_BUTTON_OK=$(gettext "OK")
12
13
14#Variables :
15#Arg1: Ruta de la lista de paquetes
16#Arg2: Nombre del paquete para la info en zenity
17PACKAGE_LIST="$1"
18PACKAGE_NAME="$2"
19ZERO_LOG="/tmp/zero-installer.log"
20
21NAME_FILE=$(echo $PACKAGE_LIST | rev | cut -d "/" -f1 | rev)
22
23INSTALL_LOG="/tmp/zero-${NAME_FILE}.log"
24
25ZEN_BUTTON_OK="--ok-label=$MSG_BUTTON_OK"
26
27ERROR=1
28
29####FUNCIONES
30       
31        #Aqui listaremos las opciones del helper
32        function helper {
33               
34                if [ "$1" = "--help" ] || [ "$1" = "-h" ] || [ "$1" = "" ]; then
35                        echo
36                        echo "----ZERO-REINSTALL-LIST-HELPER----"
37                        echo
38                        echo "zero-reinstall-list <arg1>"
39                        echo
40                        echo "arg1: Is the name of the FILE with the names of the package, separates with EOF"
41                        echo
42                        echo "arg2: Is the name of the zenity info with resume, is optional"
43                        echo 
44                        echo "example: zero-reinstall-list LIST example"
45                        echo
46                        echo "LIST is a file with:"
47                        echo
48                        echo "hotpotatoes"
49                        echo "openssh-server"
50                        echo "sl"
51                        echo
52                        exit 0
53                fi
54        }
55
56        #FUNCION QUE TESTEA SI UN PAQUETE ESTA INSTALADO, BORRANDOLO EN CASO AFIRMATIVO
57        function test_install {
58                #Testeamos si el paquete esta instalado, no haciendo nada en el caso afirmativo o instalandolo en el caso negativo.
59                TEST=$( dpkg-query -s $1 2> /dev/null| grep Status | cut -d " " -f 4 )
60                if [ "$TEST" = 'installed' ]; then
61                        echo " " >> $INSTALL_LOG
62                        echo " ----------Zero-Test-Uninstall------------" >> $INSTALL_LOG
63                        echo " " >> $INSTALL_LOG
64                        echo "Package $1 already installed, we have to uninstall it" >> $INSTALL_LOG
65                        echo "Package $1 already installed, we have to uninstall it"
66                        zero-installer remove $1
67                        cat $ZERO_LOG >> $INSTALL_LOG
68                else
69                        echo " " >> $INSTALL_LOG
70                        echo " ----------Zero-Test-Uninstall------------" >> $INSTALL_LOG
71                        echo " " >> $INSTALL_LOG
72                        echo "Package $1 is not installed, do nothing" >> $INSTALL_LOG
73                        echo "Package $1 is not installed, do nothing"
74                fi
75
76        }
77       
78
79################MAIN######################
80
81#Log para el zero-center
82if [ -f "$INSTALL_LOG" ]; then
83        rm  "$INSTALL_LOG"
84fi
85
86touch "$INSTALL_LOG"
87
88#COMPROBAMOS QUE NO ES LA AYUDA
89helper $1
90
91#CREAMOS UNA LISTA CON LOS PROGRAMAS NECESARIOS Y LOS TESTEAMOS SI ESTAN INSTALADOS
92LISTA=( $( cat $PACKAGE_LIST | awk '{print $1}' ) )
93echo "The package list is....."
94echo ${LISTA[@]}
95        for i in "${LISTA[@]}"; do
96                echo "Now test_install $i"
97                #Testeamos si el paquete esta instalado y si es asi lo borramos
98                test_install $i
99                #Me guardo el fichero de los logs por si algo fallase o para revisarlo
100                cat $ZERO_LOG >> $INSTALL_LOG
101               
102        done
103
104##YA SABEMOS QUE  EL PROGRAMA ESTA DESINSTALADO, VAMOS A INSTALARLO
105##LO HACEMOS ASI Y NO TODO DEL TIRON PORQUE SINO PUEDE SER QUE ALGUNA DEPENDENCIA QUE SE ARRASTRE FALLE
106        for i in "${LISTA[@]}"; do             
107                echo " " >> $INSTALL_LOG
108                echo "Zero-installer install the package $i" >> $INSTALL_LOG
109                echo "Zero-installer install the package $i"
110                zero-installer install $i
111                #Get zero-installer exit status
112                ERROR=$?
113                #Me guardo el fichero de los logs por si algo fallase o para revisarlo
114                cat $ZERO_LOG >> $INSTALL_LOG
115        done
116
117#Ponemos el nombre si no fue especificado en la llamada al comando     
118#if [ "$PACKAGE_NAME" == " " ]; then
119if [ -z "$PACKAGE_NAME" ]; then
120        PACKAGE_NAME=$(echo "$PACKAGE_LIST" | rev | cut -d "/" -f1 | rev)
121fi
122
123#COMPROBAMOS QUE LA LISTA SE INSTALO BIEN
124echo "--------PACKAGE NOT IN REPOSITORIES--------- " >> $INSTALL_LOG
125for i in "${LISTA[@]}"; do
126        TEST=$( dpkg-query -s $i 2> /dev/null| grep Status | cut -d " " -f 4 )
127       
128        if [ "$TEST" != 'installed' ]; then
129                echo "$i is not in repository" >> $INSTALL_LOG
130        fi
131
132done
133
134fgrep "is not in repository" "$INSTALL_LOG" 
135if  [ "$?" == "0" -o "$ERROR" -gt 0 ]; then
136        zenity --info --title="Zero-reinstaller" --text="$MSG_REVIEW1 $INSTALL_LOG. $MSG_REVIEW2 .$MSG_CONTACT" ZEN_BUTTON_OK > /dev/null 2>&1 &
137        exit 1
138else
139        zenity --info --title="Zero-reinstaller" --text="$PACKAGE_NAME $MSG_FINISH_INSTALLED $INSTALL_LOG" ZEN_BUTTON_OK > /dev/null 2>&1 &
140fi
141
142exit 0
Note: See TracBrowser for help on using the repository browser.