--- trunk/mage/usr/lib/mage/depwalker.sh 2009/07/15 23:31:38 887 +++ trunk/mage/usr/lib/mage/depwalker.sh 2013/10/10 11:05:34 2195 @@ -1,7 +1,6 @@ #!/bin/bash - -#depwalker -# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/depwalker.sh,v 1.11 2008-10-05 10:33:36 niro Exp $ +# $Id$ +# dependeny walker # default die function die() @@ -22,27 +21,6 @@ source ${MLIBDIR}/mage4.functions.sh || \ die "mage functions missing" -# for tests only -# source /home/tjoke/alx-cvs/magellan-src/mage/usr/lib/mage/mage.rc.global -# source /etc/mage.rc -# source /home/tjoke/alx-cvs/magellan-src/mage/usr/lib/mage/mage4.functions.sh -# MLIBDIR=/home/tjoke/alx-cvs/magellan-src/mage/usr/lib/mage - -# not serious if missing, only needed for colors -[ -f /etc/init.d/functions ] && source /etc/init.d/functions - -# disable colors if wanted -if [[ ${NOCOLORS} = true ]] -then - COLRED="" - COLGREEN="" - COLYELLOW="" - COLBLUE="" - COLMAGENTA="" - COLWHITE="" - COLDEFAULT="" -fi - usage() { echo @@ -120,8 +98,8 @@ } ##################### -## rumwandern /path/to/mage/file/.mage -rumwandern() +## depwalking /path/to/mage/file/.mage +depwalking() { unset DEPEND unset SDEPEND @@ -201,22 +179,27 @@ fi HIGHEST_DEPFILE=$(dep2highest_magefile "${DEPNAME}") + if [[ -z ${HIGHEST_DEPFILE} ]] + then + INVALID_DEPS+=" ${DEPNAME}:${DFILE}" + continue + fi PCAT="$(magename2pcat ${HIGHEST_DEPFILE})" PNAME="$(magename2pname ${HIGHEST_DEPFILE})" PVER="$(magename2pver ${HIGHEST_DEPFILE})" PBUILD="$(magename2pbuild ${HIGHEST_DEPFILE})" - ## check ob schon in ALLDEPS enthalten dann mach weiter + ## dep already in ALLDEPS? then going on # usage of fgrep is extremly slow and consumes a lot of cpu power #if [ -z "$(echo ${ALLDEPS} | fgrep "${HIGHEST_DEPFILE}")" ] if checklist_alldeps "${HIGHEST_DEPFILE}" then - ### check ob DFILE schon installiert ist ### + ### check if the dependency is already installed ### if [ ! -d ${MROOT}${INSTALLDB}/${PCAT}/${PNAME}-${PVER}-${PBUILD} ] then - rumwandern ${HIGHEST_DEPFILE} + depwalking ${HIGHEST_DEPFILE} ALLDEPS="${ALLDEPS} ${HIGHEST_DEPFILE}" fi fi @@ -226,11 +209,6 @@ return 0 } - -### abort if this package is already installed (retval 3) -# maybe later ? -#[ -d ${INSTALLDB}/${PCAT}/${PNAME}-${PVER}-${PBUILD} ] && exit 3 - [[ ${METHOD} = pretend ]] || \ [[ ${METHOD} = srcpretend ]] || \ [[ ${METHOD} = uppretend ]] || \ @@ -264,26 +242,22 @@ PVER="$(magename2pver ${MAGEFILE})" PBUILD="$(magename2pbuild ${MAGEFILE})" - # do not wander files which are installed + # do not walk files which are installed if [ ! -d ${INSTALLDB}/${PCAT}/${PNAME}-${PVER}-${PBUILD} ] then # get dependencies the package - rumwandern ${MAGEFILE} - - # now add the package itself to the dependencies - # (if not exists already) - #if [ -z "$(echo ${ALLDEPS} | fgrep "${MAGEFILE}")" ] - if checklist_alldeps "${MAGEFILE}" - then - ALLDEPS="${ALLDEPS} ${MAGEFILE}" - fi + depwalking ${MAGEFILE} fi done else - # get dependencies the package - rumwandern ${MAGEFILE} + # get all dependencies of the package + depwalking ${MAGEFILE} +fi - # now add the package itself to the dependencies +# now add the package itself to the dependencies +# (if not exists already) +if checklist_alldeps "${MAGEFILE}" +then ALLDEPS="${ALLDEPS} ${MAGEFILE}" fi @@ -326,6 +300,18 @@ echo -e "${list}" echo + if [[ ! -z ${INVALID_DEPS} ]] + then + echo -e "${COLRED}Invalid dependencies found:${COLDEFAULT}" + for i in ${INVALID_DEPS} + do + _dep="${i%%:*}" + _mage="${i##*:}" + echo -e "${COLRED} '${_dep}' -> '${_mage}'${COLDEFAULT}" + done + echo + fi + if [[ ! -z ${NO_UPGRADE_CANDIDATE} ]] then echo -e "${COLRED}Currently no candidates found for:${COLDEFAULT}" @@ -347,6 +333,3 @@ [[ ${METHOD} = upgrade ]] || \ [[ ${METHOD} = srcupgrade ]] && \ echo "${ALLDEPS}" - -# delete ${BUILDDIR}/virtuals if exists as not needed anymore -#[ -d ${BUILDDIR}/virtuals ] && rm -rf ${BUILDDIR}/virtuals