--- trunk/mage/usr/lib/mage/depwalker.sh 2008/01/13 12:13:37 653 +++ trunk/mage/usr/lib/mage/depwalker.sh 2008/01/13 21:32:38 654 @@ -1,7 +1,7 @@ #!/bin/bash #depwalker -# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/depwalker.sh,v 1.6 2007-11-05 16:49:33 niro Exp $ +# $Header: /home/cvsd/magellan-cvs/magellan-src/mage/usr/lib/mage/depwalker.sh,v 1.7 2008-01-13 21:32:38 niro Exp $ # default die function die() @@ -106,6 +106,19 @@ return 0 } +checklist_processeddeps() +{ + local i + local item="$1" + + for i in ${PROCESSEDDEPS} + do + [[ ${i} = ${item} ]] && return 1 + done + + return 0 +} + ##################### ## rumwandern /path/to/mage/file/.mage rumwandern() @@ -162,6 +175,15 @@ while read SYM DEPNAME do + # exclude all already processed deps -without version + if ! checklist_processeddeps "${DEPNAME%-*}" + then + continue + fi + + # mark depfile as processed to prevent double runs -without version + PROCESSEDDEPS="${PROCESSEDDEPS} ${DEPNAME%-*}" + HIGHEST_DEPFILE=$(dep2highest_magefile "${DEPNAME}") PCAT="$(magename2pcat ${HIGHEST_DEPFILE})"