# HG changeset patch # User Pascal Bellard # Date 1226964832 0 # Node ID e66aabd2f482e0bcd07380543b40e559a9aa186e # Parent 4aa05c3c82d81ba01615235c1fb48f5b813c3794 Add tazpkg (r)depends diff -r 4aa05c3c82d8 -r e66aabd2f482 tazpkg --- a/tazpkg Mon Nov 17 17:52:05 2008 +0000 +++ b/tazpkg Mon Nov 17 23:33:52 2008 +0000 @@ -118,6 +118,8 @@ install-flavor Install the flavor list of packages and remove other ones. set-release Change release and update packages clean-cache Clean all packages downloaded in cache directory. + depends Display dependancies tree. + rdepends Display reverse dependancies tree. setup-mirror Change the mirror url configuration. list-undigest List undigest mirrors. remove-undigest Remove an undigest mirror. @@ -787,6 +789,45 @@ echo "" } +# recursive dependancies scan +dep_scan() +{ +for i in $1; do + case " $ALL_DEPS " in + *\ $i\ *) continue;; + esac + ALL_DEPS="$ALL_DEPS $i" + [ -n "$2" ] && echo "$2$i" + [ -f $i/receipt ] || continue + DEPENDS="" + . $i/receipt + [ -n "$DEPENDS" ] && dep_scan "$DEPENDS" "$2 " +done +} + +# recursive reverse dependancies scan +rdep_scan() +{ +for i in $1; do + case " $ALL_DEPS " in + *\ $i\ *) continue;; + esac + ALL_DEPS="$ALL_DEPS $i" + [ -n "$2" ] && echo "$2$i" + RDEPENDS="" + for j in *; do + [ -f $j/receipt ] || continue + DEPENDS="" + . $j/receipt + case " $(echo $DEPENDS) " in + *\ $i\ *) + RDEPENDS="$RDEPENDS $j";; + esac + done + [ -n "$RDEPENDS" ] && rdep_scan "$RDEPENDS" "$2 " +done +} + ################### # Tazpkg commands # ################### @@ -2012,6 +2053,22 @@ esac done ;; + depends) + # Display dependancies tree + cd $INSTALLED + ALL_DEPS="" + if [ -f $2/receipt ]; then + dep_scan $2 "" + fi + ;; + rdepends) + # Display reverse dependancies tree + cd $INSTALLED + ALL_DEPS="" + if [ -f $2/receipt ]; then + rdep_scan $2 "" + fi + ;; usage|*) # Print a short help or give usage for an unknown or empty command. #