--- trunk/mage/usr/lib/mage/depwalker.sh 2013/07/15 08:04:58 2141 +++ trunk/mage/usr/lib/mage/depwalker.sh 2013/11/20 12:20:12 2280 @@ -27,19 +27,25 @@ echo "Usage: $(basename $0) [command] [arg] ..." echo echo " -h --help shows this help" - echo " -c --pcat categorie of the package" + echo " -c --pcat category of the package" echo " -n --pname name of the package" echo " -v --pver version number of the package" echo " -b --pbuild build number of the package" echo " -m --method which calc method should be used:" echo " install, srcinstall, depend, srcdepend" - echo " upgrade, srcupgrade" + echo " upgrade, srcupgrade," + echo " install-build-prerequisites," + echo " pretend-build-prerequisites" + echo " -d --debug enable debug mode" echo - echo "method, name, version and build must be given !" + echo "method, category, name, version and build must be given !" echo exit 1 } +# always default debug=0 +DEBUG=0 + # very basic getops for i in $* do @@ -49,6 +55,7 @@ --pver|-v) shift; PVER="$1" ;; --pbuild|-b) shift; PBUILD="$1" ;; --method|-m) shift; METHOD="$1" ;; + --debug|-d) shift; DEBUG=1 ;; --help|-h) usage ;; esac shift @@ -151,6 +158,28 @@ fi fi + if [[ ${METHOD} = install-build-prerequisites ]] || \ + [[ ${METHOD} = pretend-build-prerequisites ]] + then + # only one time + if [[ ${LOOP_COUNTER} -lt 1 ]] + then + # only if SDEPEND is not zero + if [ -n "${SDEPEND}" ] + then + # crlf is substantly needed !! + if [ -n "${MY_DEPEND}" ] + then + MY_DEPEND="${MY_DEPEND} + ${SDEPEND}" + else + MY_DEPEND="${SDEPEND}" + fi + fi + fi + LOOP_COUNTER=${LOOP_COUNTER}+1 + fi + unset DEPEND unset SDEPEND @@ -161,6 +190,11 @@ while read SYM DEPNAME do + if [[ ${DEBUG} = 1 ]] + then + echo "DEBUG: DEPNAME='${DEPNAME}'" >&2 + fi + # exclude empty depnames [[ -z ${DEPNAME} ]] && continue @@ -212,7 +246,8 @@ [[ ${METHOD} = pretend ]] || \ [[ ${METHOD} = srcpretend ]] || \ [[ ${METHOD} = uppretend ]] || \ - [[ ${METHOD} = srcuppretend ]] && \ + [[ ${METHOD} = srcuppretend ]] || \ + [[ ${METHOD} = pretend-build-prerequisites ]] && \ echo -n "Calculating dependencies ... " @@ -250,7 +285,6 @@ # 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}" @@ -258,17 +292,31 @@ fi done else + LOOP_COUNTER=0 # get all dependencies of the package depwalking ${MAGEFILE} +fi +if [[ ${METHOD} != install-build-prerequisites ]] && + [[ ${METHOD} != pretend-build-prerequisites ]] && + [[ ${METHOD} != upgrade ]] && + [[ ${METHOD} != uppretend ]] && + [[ ${METHOD} != srcupgrade ]] && + [[ ${METHOD} != srcuppretend ]] +then # now add the package itself to the dependencies - ALLDEPS="${ALLDEPS} ${MAGEFILE}" + # (if not exists already) + if checklist_alldeps "${MAGEFILE}" + then + ALLDEPS="${ALLDEPS} ${MAGEFILE}" + fi fi [[ ${METHOD} = pretend ]] || \ [[ ${METHOD} = srcpretend ]] || \ [[ ${METHOD} = uppretend ]] || \ - [[ ${METHOD} = srcuppretend ]] && \ + [[ ${METHOD} = srcuppretend ]] || \ + [[ ${METHOD} = pretend-build-prerequisites ]] && \ echo "done" @@ -276,7 +324,8 @@ if [[ ${METHOD} = pretend ]] || \ [[ ${METHOD} = srcpretend ]] || \ [[ ${METHOD} = uppretend ]] || \ - [[ ${METHOD} = srcuppretend ]] + [[ ${METHOD} = srcuppretend ]] || \ + [[ ${METHOD} = pretend-build-prerequisites ]] then # this is a little bit faster declare -i x=0 @@ -293,7 +342,7 @@ PBUILD="$(magename2pbuild ${i})" if [ -z "${list}" ] then - list="\t${COLBLUE}[${k}] ${COLGREEN}${PCAT}/${PNAME}-${PVER}-${PBUILD}${COLDEFAULT}" + list="\t${COLBLUE}[${k}] ${COLGREEN}${PCAT}/${PNAME}-${PVER}-${PBUILD}${COLDEFAULT}" else list="${list} \t${COLBLUE}[${k}] ${COLGREEN}${PCAT}/${PNAME}-${PVER}-${PBUILD}${COLDEFAULT}" @@ -335,5 +384,6 @@ [[ ${METHOD} = install ]] || \ [[ ${METHOD} = srcinstall ]] || \ [[ ${METHOD} = upgrade ]] || \ - [[ ${METHOD} = srcupgrade ]] && \ + [[ ${METHOD} = srcupgrade ]] || \ + [[ ${METHOD} = install-build-prerequisites ]] && \ echo "${ALLDEPS}"