--- trunk/mage/usr/lib/mage/mageupgrade.sh 2005/08/16 23:24:11 187 +++ trunk/mage/usr/lib/mage/mageupgrade.sh 2005/08/28 19:19:25 211 @@ -1,7 +1,7 @@ #!/bin/bash # mage upgrade -# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/mageupgrade.sh,v 1.10 2005-08-16 23:24:11 niro Exp $ +# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/mageupgrade.sh,v 1.11 2005-08-28 19:19:25 niro Exp $ # some default vars : ${MLIBDIR=/usr/lib/mage} @@ -18,12 +18,26 @@ unset UPGRADE_LIST unset PLEASE_VALIDATE +if [[ ${NOCOLORS} = true ]] +then + COLRED="" + COLGREEN="" + COLYELLOW="" + COLBLUE="" + COLMAGENTA="" + COLWHITE="" + COLDEFAULT="" +fi + usage() { echo echo "Usage: $(basename $0) [command] ..." echo echo " --help shows this help" + echo " --calc only calculates the dependencies" + echo " --calc-bash only calculates the deps but with scriptable output" + echo " output: categorie,pname,oldpver,newpver" echo " --no-calc do not show deps, running straight forward" echo " --autoclean clean all downloaded files automatically" echo " --autoanswer answer all questions automatically" @@ -40,6 +54,12 @@ --no-calc) NO_CALC=true ;; + --calc) + ONLY_CALC_DEPS=true + ;; + --calc-bash) + ONLY_CALC_DEPS_SCRIPTABLE=true + ;; --autoclean) AUTOCLEAN=true ;; @@ -61,7 +81,9 @@ esac done -echo "Fetching list of all installed packages ..." +# show this only if ONLY_CALC_DEPS_SCRIPTABLE is not set +[[ ${ONLY_CALC_DEPS_SCRIPTABLE} != true ]] && \ + echo "Fetching list of all installed packages ..." # get list for directory in ${INSTALLDB}/* @@ -96,11 +118,14 @@ then UPGRADE_LIST="${UPGRADE_LIST} ${PNAME}" SHOW_LIST="${SHOW_LIST}:${PCAT}/${PNAME},[${PVER}-${PBUILD} -> $(basename ${HIGHEST_MAGEFILE#${HIGHEST_MAGEFILE%-*-*}-} .mage)]" + SHOW_LIST_SCRIPTABLE="${SHOW_LIST_SCRIPTABLE}:${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} ]] then - echo "Not added: ${PNAME}-${PVER}-${PBUILD} is newer than $(basename ${HIGHEST_MAGEFILE} .mage)." + # show this only if ONLY_CALC_DEPS_SCRIPTABLE is not set + [[ ${ONLY_CALC_DEPS_SCRIPTABLE} != true ]] && \ + echo "Not added: ${PNAME}-${PVER}-${PBUILD} is newer than $(basename ${HIGHEST_MAGEFILE} .mage)." PLEASE_VALIDATE="${PLEASE_VALIDATE} ${PNAME}-${PVER}-${PBUILD}" fi fi @@ -123,19 +148,34 @@ 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}" + if [[ ${ONLY_CALC_DEPS_SCRIPTABLE} = true ]] + then + OLDIFS="${IFS}" + IFS=: + for package in ${SHOW_LIST_SCRIPTABLE} + do + # only if not empty # scriptable output + [ -n "${package}" ] && echo "${package}" + done + IFS="${OLDIFS}" + else + 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}" + fi + # exit now if only_calc_deps is set + [[ ${ONLY_CALC_DEPS} = true ]] || \ + [[ ${ONLY_CALC_DEPS_SCRIPTABLE} = true ]] && exit 0 echo echo "I'm now ready to upgrade your system."