--- trunk/mage/usr/lib/mage/depwalker.sh 2007/01/22 00:24:14 419 +++ trunk/mage/usr/lib/mage/depwalker.sh 2007/11/05 16:49:33 598 @@ -1,7 +1,7 @@ #!/bin/bash #depwalker -# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/depwalker.sh,v 1.5 2007-01-22 00:24:14 niro Exp $ +# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/depwalker.sh,v 1.6 2007-11-05 16:49:33 niro Exp $ # default die function die() @@ -92,6 +92,20 @@ ALLDEPS="" MAGEFILE="${MAGEDIR}/${PCAT}/${PNAME}/${PNAME}-${PVER}-${PBUILD}.mage" +# much faster than fgrep +checklist_alldeps() +{ + local i + local item="$1" + + for i in ${ALLDEPS} + do + [[ ${i} = ${item} ]] && return 1 + done + + return 0 +} + ##################### ## rumwandern /path/to/mage/file/.mage rumwandern() @@ -156,7 +170,10 @@ PBUILD="$(magename2pbuild ${HIGHEST_DEPFILE})" ## check ob schon in ALLDEPS enthalten dann mach weiter - if [ -z "$(echo ${ALLDEPS} | fgrep "${HIGHEST_DEPFILE}")" ] + + # 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 ### if [ ! -d ${MROOT}${INSTALLDB}/${PCAT}/${PNAME}-${PVER}-${PBUILD} ] @@ -209,7 +226,8 @@ # now add the package itself to the dependencies # (if not exists already) - if [ -z "$(echo ${ALLDEPS} | fgrep "${MAGEFILE}")" ] + #if [ -z "$(echo ${ALLDEPS} | fgrep "${MAGEFILE}")" ] + if checklist_alldeps "${MAGEFILE}" then ALLDEPS="${ALLDEPS} ${MAGEFILE}" fi