Magellan Linux

Diff of /trunk/mage/usr/lib/mage/mageupgrade.sh

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 37 by niro, Thu Jan 6 03:39:45 2005 UTC revision 187 by niro, Tue Aug 16 23:24:11 2005 UTC
# Line 1  Line 1 
1  #!/bin/bash  #!/bin/bash
2    
3  # mage upgrade  # mage upgrade
4  # version: 0.3.6-r9  # $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/mageupgrade.sh,v 1.10 2005-08-16 23:24:11 niro Exp $
5    
6  # some default vars  # some default vars
7  : ${MLIBDIR=/usr/lib/mage}  : ${MLIBDIR=/usr/lib/mage}
8  : ${DEBUG=false}  : ${DEBUG=false}
9  : ${AUTOANSWER=false}  : ${AUTOANSWER=false}
10    : ${SRCINSTALL=false}
11    : ${AUTOCLEAN=false}
12    : ${NO_CALC=false}
13    
14  source /etc/mage.rc  source /etc/mage.rc
15  source ${MLIBDIR}/mage3.functions.sh  source ${MLIBDIR}/mage3.functions.sh
16    source /etc/init.d/functions
17    
18  unset UPGRADE_LIST  unset UPGRADE_LIST
19  unset PLEASE_VALIDATE  unset PLEASE_VALIDATE
20    
21    usage()
22    {
23     echo
24     echo "Usage: $(basename $0) [command] ..."
25     echo
26     echo "   --help          shows this help"
27     echo "   --no-calc       do not show deps, running straight forward"
28     echo "   --autoclean     clean all downloaded files automatically"
29     echo "   --autoanswer    answer all questions automatically"
30     echo "   --src-install   install from sources rather from binary packages"
31     echo "   --debug         show debug messages"
32     echo
33     exit 1
34    }
35    
36    # get options
37    for opt in $@
38    do
39     case ${opt} in
40     --no-calc)
41     NO_CALC=true
42     ;;
43     --autoclean)
44     AUTOCLEAN=true
45     ;;
46     --autoanswer)
47     AUTOANSWER=true
48     ;;
49     --src-install)
50     SRCINSTALL=true
51     ;;
52     --debug)
53     DEBUG=true
54     ;;
55     --help)
56     usage
57     ;;
58     *)
59     usage
60     ;;
61     esac
62    done
63    
64    echo "Fetching list of all installed packages ..."
65    
66  # get list  # get list
67  for directory in ${INSTALLDB}/*  for directory in ${INSTALLDB}/*
68  do  do
69   # supress virtuals and fake packages or files   # supress virtuals and fake packages or files
70   x=$(basename ${directory})   x=$(basename ${directory})
71   if [ ${x} = fake ] ||   if [ ${x} = virtual ] ||
  [ ${x} = virtual ] ||  
72   [ ${x} = virtuals ] ||   [ ${x} = virtuals ] ||
73   [ ${x} = virtuals.old ] ||   [ ${x} = virtuals.old ] ||
74   [ ! -d ${directory} ]   [ ! -d ${directory} ]
# Line 38  do Line 86  do
86    
87   # check if there is any higher version in mage db   # check if there is any higher version in mage db
88    
89   #needed packages may have ben renamed ??   # needed packages may have been renamed ??
90   if [ -d ${MAGEDIR}/${PCAT}/${PNAME} ]   if [ -d ${MAGEDIR}/${PCAT}/${PNAME} ]
91   then   then
92   CATEGORIE=${PCAT} MAGENAME=${PNAME} get_highest_magefile &> /dev/null   CATEGORIE=${PCAT} MAGENAME=${PNAME} get_highest_magefile &> /dev/null
93    
94   #compare them   # compare them
95   if [[ $(basename ${HIGHEST_MAGEFILE} .mage) > ${PNAME}-${PVER}-${PBUILD} ]]   if [[ $(basename ${HIGHEST_MAGEFILE} .mage) > ${PNAME}-${PVER}-${PBUILD} ]]
96   then   then
97   UPGRADE_LIST="${UPGRADE_LIST} ${PNAME}"   UPGRADE_LIST="${UPGRADE_LIST} ${PNAME}"
98     SHOW_LIST="${SHOW_LIST}:${PCAT}/${PNAME},[${PVER}-${PBUILD} -> $(basename ${HIGHEST_MAGEFILE#${HIGHEST_MAGEFILE%-*-*}-} .mage)]"
99   else   else
100   # put them only on PLEASE_VALIDATE if they are not the same package   # put them only on PLEASE_VALIDATE if they are not the same package
101   if [[ $(basename ${HIGHEST_MAGEFILE} .mage) != ${PNAME}-${PVER}-${PBUILD} ]]   if [[ $(basename ${HIGHEST_MAGEFILE} .mage) != ${PNAME}-${PVER}-${PBUILD} ]]
# Line 57  do Line 106  do
106   fi   fi
107   fi   fi
108    
109   #unset some vars for shure   # unset some vars for sure
110   unset x   unset x
111   unset PNAME   unset PNAME
112   unset PVER   unset PVER
# Line 71  done Line 120  done
120    
121  unset package directory  unset package directory
122    
123  echo  if [[ ${NO_CALC} = false ]] && [[ ${AUTOANSWER} = false ]]
124  echo "I'm now ready to upgrade your system."  then
125  echo "Press any key to continue or [CTRL-C] to abort ..."   # show the list
126  echo   echo
127  read   echo "Packages selected for upgrade:"
128     OLDIFS="${IFS}"
129     IFS=:
130     for package in ${SHOW_LIST}
131     do
132     # nice output :)
133     echo -en \\033[10G
134     echo -en ${COLGREEN}"$(echo ${package} | cut -d',' -f1)"${COLDEFAULT}
135     echo -en \\033[40G
136     echo -e ${COLBLUE}"$(echo ${package} | cut -d',' -f2)"${COLDEFAULT}
137     done
138     IFS="${OLDIFS}"
139    
140     echo
141     echo "I'm now ready to upgrade your system."
142     echo "Press any key to continue or [CTRL-C] to abort ..."
143     echo
144     read
145    fi
146    
147  #now run the update  
148    # now run the update
149  for package in ${UPGRADE_LIST}  for package in ${UPGRADE_LIST}
150  do  do
151   /sbin/mage install ${package} || exit 1   if [[ ${SRCINSTALL} = false ]]
152     then
153     /sbin/mage install ${package} || exit 1
154     else
155     /sbin/mage srcinstall ${package} || exit 1
156     fi
157    
158   if [[ ${DEBUG} = true ]]   if [[ ${DEBUG} = true ]]
159   then   then
160   echo "Installation of ${package} completed."   echo "Installation of ${package} completed."
# Line 94  do Line 168  do
168   else   else
169   MAGE_UNINSTALL_TIMEOUT=0 /sbin/mage uninstall ${package} || exit 1   MAGE_UNINSTALL_TIMEOUT=0 /sbin/mage uninstall ${package} || exit 1
170   fi   fi
171    
172     if [[ ${AUTOCLEAN} = true ]]
173     then
174     /sbin/mage clean || exit 1
175     if [[ ${SRCINSTALL} = true ]] && \
176     [ -d ${SOURCEDIR}/${package} ]
177     then
178     rm -f ${SOURCEDIR}/${package} || exit 1
179     fi
180     fi
181    
182   if [[ ${DEBUG} = true ]]   if [[ ${DEBUG} = true ]]
183   then   then
184   echo "Uninstallation of ${package} completed."   echo "Uninstallation of ${package} completed."
185   echo "Press any key to continue ..."   echo "Press any key to continue ..."
186   read   read
187   fi   fi
188    
189   #resource /etc/profile   # resource /etc/profile
190   source /etc/profile   source /etc/profile
191  done  done
192    
193  echo "The system upgrade is now complete."  echo "The system upgrade is now complete."
194  echo -n "Would you like to see the list of ignored packages ? [ y/n ] "  
195  read answer  if [ -n "${PLEASE_VALIDATE}" ] && [[ ${AUTOANSWER} = false ]]
 if [[ ${answer} = y ]]  
196  then  then
197   echo   echo -n "Would you like to see the list of ignored packages ? [ y/n ] "
198   for i in ${PLEASE_VALIDATE}   read answer
199   do   if [[ ${answer} = y ]]
200   echo "avoided: ${i}"   then
201   done   echo
202     for i in ${PLEASE_VALIDATE}
203     do
204     echo "avoided: ${i}"
205     done
206     fi
207  fi  fi
208    
209  echo  echo

Legend:
Removed from v.37  
changed lines
  Added in v.187