#!/bin/bash if ! [ "$1" ]; then echo "$0 packagename of buildscript path" echo "Bepaald recursief alle build dependencies van de meegeven pacakage. Dus alle NEEDs en DEPs" exit 1 fi cd `dirname $0` || exit 1 export BUILDDEPS="" getdeps() { if ! [ -f $1 ]; then BUILDSCRIPT=`./findbuild $1`.SlackBuild || exit 1 else BUILDSCRIPT=$1 fi DEPS="`cat "$BUILDSCRIPT"|egrep '^#DEP:'|cut -f2 -d':'`" || exit 1 for DEP in $DEPS; do if ! echo "$BUILDDEPS" | grep " $DEP " >/dev/null; then BUILDDEPS="$BUILDDEPS $DEP " #recurse getdeps $DEP || exit 1 fi done } if ! [ -f $1 ]; then BUILDSCRIPT=`./findbuild $1`.SlackBuild || exit 1 else BUILDSCRIPT=$1 fi #toplevel needs BUILDDEPS="$BUILDDEPS `cat "$BUILDSCRIPT"|egrep '^#NEED:'|cut -f2 -d':'| tr '\n' ' '`" || exit 1 #toplevel deps BUILDDEPS="$BUILDDEPS `cat "$BUILDSCRIPT"|egrep '^#DEP:'|cut -f2 -d':'| tr '\n' ' '`" || exit 1 #toplevel deps_dev, if they exists DEVS="`cat "$BUILDSCRIPT"|egrep '^#DEP:'|cut -f2 -d':'| sed 's/$/_dev/g'| tr '\n' ' '`" || exit 1 for DEV in $DEVS; do if ./findbuild $DEV 2>/dev/null >/dev/null ; then BUILDDEPS="$BUILDDEPS $DEV" || exit 1 fi done #determine sub-deps recursively, because those usually are runtime dependencies as well DEPS="`cat "$BUILDSCRIPT"|egrep '(^#DEP:|^#NEED)'|cut -f2 -d':'`" || exit 1 for DEP in $DEPS; do getdeps $DEP || exit 1 done #output for DEP in $BUILDDEPS; do echo $DEP done