--- trunk/mage/usr/lib/mage/mageupgrade.sh 2005/07/29 14:18:41 166 +++ trunk/mage/usr/lib/mage/mageupgrade.sh 2005/08/16 23:24:11 187 @@ -1,22 +1,66 @@ #!/bin/bash # mage upgrade -# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/mageupgrade.sh,v 1.9 2005-07-29 14:18:41 niro Exp $ +# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/mageupgrade.sh,v 1.10 2005-08-16 23:24:11 niro Exp $ # some default vars : ${MLIBDIR=/usr/lib/mage} : ${DEBUG=false} : ${AUTOANSWER=false} : ${SRCINSTALL=false} +: ${AUTOCLEAN=false} +: ${NO_CALC=false} source /etc/mage.rc source ${MLIBDIR}/mage3.functions.sh source /etc/init.d/functions - unset UPGRADE_LIST unset PLEASE_VALIDATE +usage() +{ + echo + echo "Usage: $(basename $0) [command] ..." + echo + echo " --help shows this help" + echo " --no-calc do not show deps, running straight forward" + echo " --autoclean clean all downloaded files automatically" + echo " --autoanswer answer all questions automatically" + echo " --src-install install from sources rather from binary packages" + echo " --debug show debug messages" + echo + exit 1 +} + +# get options +for opt in $@ +do + case ${opt} in + --no-calc) + NO_CALC=true + ;; + --autoclean) + AUTOCLEAN=true + ;; + --autoanswer) + AUTOANSWER=true + ;; + --src-install) + SRCINSTALL=true + ;; + --debug) + DEBUG=true + ;; + --help) + usage + ;; + *) + usage + ;; + esac +done + echo "Fetching list of all installed packages ..." # get list @@ -76,27 +120,30 @@ unset package directory -# show the list -echo -echo "Packages selected for upgrade:" -OLDIFS="${IFS}" -IFS=: -for package in ${SHOW_LIST} -do - # nice output :) - echo -en \\033[10G - echo -en ${COLGREEN}"$(echo ${package} | cut -d',' -f1)"${COLDEFAULT} - echo -en \\033[40G - echo -e ${COLBLUE}"$(echo ${package} | cut -d',' -f2)"${COLDEFAULT} -done -IFS="${OLDIFS}" +if [[ ${NO_CALC} = false ]] && [[ ${AUTOANSWER} = false ]] +then + # show the list + echo + echo "Packages selected for upgrade:" + OLDIFS="${IFS}" + IFS=: + for package in ${SHOW_LIST} + do + # nice output :) + echo -en \\033[10G + echo -en ${COLGREEN}"$(echo ${package} | cut -d',' -f1)"${COLDEFAULT} + echo -en \\033[40G + echo -e ${COLBLUE}"$(echo ${package} | cut -d',' -f2)"${COLDEFAULT} + done + IFS="${OLDIFS}" + echo + echo "I'm now ready to upgrade your system." + echo "Press any key to continue or [CTRL-C] to abort ..." + echo + read +fi -echo -echo "I'm now ready to upgrade your system." -echo "Press any key to continue or [CTRL-C] to abort ..." -echo -read # now run the update for package in ${UPGRADE_LIST} @@ -122,6 +169,16 @@ MAGE_UNINSTALL_TIMEOUT=0 /sbin/mage uninstall ${package} || exit 1 fi + if [[ ${AUTOCLEAN} = true ]] + then + /sbin/mage clean || exit 1 + if [[ ${SRCINSTALL} = true ]] && \ + [ -d ${SOURCEDIR}/${package} ] + then + rm -f ${SOURCEDIR}/${package} || exit 1 + fi + fi + if [[ ${DEBUG} = true ]] then echo "Uninstallation of ${package} completed." @@ -135,7 +192,7 @@ echo "The system upgrade is now complete." -if [ -n "${PLEASE_VALIDATE}" ] +if [ -n "${PLEASE_VALIDATE}" ] && [[ ${AUTOANSWER} = false ]] then echo -n "Would you like to see the list of ignored packages ? [ y/n ] " read answer