--- trunk/mage/usr/lib/mage/mageupgrade.sh 2005/02/15 22:59:14 60 +++ trunk/mage/usr/lib/mage/mageupgrade.sh 2005/06/01 15:50:56 80 @@ -1,19 +1,24 @@ #!/bin/bash # mage upgrade -# version: 0.3.6-r13 +# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/mageupgrade.sh,v 1.8 2005-06-01 15:50:56 niro Exp $ # some default vars : ${MLIBDIR=/usr/lib/mage} : ${DEBUG=false} : ${AUTOANSWER=false} +: ${SRCINSTALL=false} source /etc/mage.rc source ${MLIBDIR}/mage3.functions.sh +source /etc/init.d/functions + unset UPGRADE_LIST unset PLEASE_VALIDATE +echo "Fetching list of all installed packages ..." + # get list for directory in ${INSTALLDB}/* do @@ -47,6 +52,7 @@ if [[ $(basename ${HIGHEST_MAGEFILE} .mage) > ${PNAME}-${PVER}-${PBUILD} ]] then UPGRADE_LIST="${UPGRADE_LIST} ${PNAME}" + SHOW_LIST="${SHOW_LIST}:${PCAT}/${PNAME},[${PVER}-${PBUILD} -> $(basename ${HIGHEST_MAGEFILE#${HIGHEST_MAGEFILE%-*-*}-} .mage)]" else # put them only on PLEASE_VALIDATE if they are not the same package if [[ $(basename ${HIGHEST_MAGEFILE} .mage) != ${PNAME}-${PVER}-${PBUILD} ]] @@ -71,6 +77,22 @@ 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}" + + echo echo "I'm now ready to upgrade your system." echo "Press any key to continue or [CTRL-C] to abort ..." @@ -80,7 +102,13 @@ #now run the update for package in ${UPGRADE_LIST} do - /sbin/mage install ${package} || exit 1 + if [[ ${SRCINSTALL} = false ]] + then + /sbin/mage install ${package} || exit 1 + else + /sbin/mage srcinstall ${package} || exit 1 + fi + if [[ ${DEBUG} = true ]] then echo "Installation of ${package} completed." @@ -107,15 +135,19 @@ done echo "The system upgrade is now complete." -echo -n "Would you like to see the list of ignored packages ? [ y/n ] " -read answer -if [[ ${answer} = y ]] + +if [ -n "${PLEASE_VALIDATE}" ] then - echo - for i in ${PLEASE_VALIDATE} - do - echo "avoided: ${i}" - done + echo -n "Would you like to see the list of ignored packages ? [ y/n ] " + read answer + if [[ ${answer} = y ]] + then + echo + for i in ${PLEASE_VALIDATE} + do + echo "avoided: ${i}" + done + fi fi echo