tazpkg rev 205
Add tazpkg (r)depends
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Mon Nov 17 23:33:52 2008 +0000 (2008-11-17) |
parents | 4aa05c3c82d8 |
children | 29a82d933b02 |
files | tazpkg |
line diff
1.1 --- a/tazpkg Mon Nov 17 17:52:05 2008 +0000 1.2 +++ b/tazpkg Mon Nov 17 23:33:52 2008 +0000 1.3 @@ -118,6 +118,8 @@ 1.4 install-flavor Install the flavor list of packages and remove other ones. 1.5 set-release Change release and update packages 1.6 clean-cache Clean all packages downloaded in cache directory. 1.7 + depends Display dependancies tree. 1.8 + rdepends Display reverse dependancies tree. 1.9 setup-mirror Change the mirror url configuration. 1.10 list-undigest List undigest mirrors. 1.11 remove-undigest Remove an undigest mirror. 1.12 @@ -787,6 +789,45 @@ 1.13 echo "" 1.14 } 1.15 1.16 +# recursive dependancies scan 1.17 +dep_scan() 1.18 +{ 1.19 +for i in $1; do 1.20 + case " $ALL_DEPS " in 1.21 + *\ $i\ *) continue;; 1.22 + esac 1.23 + ALL_DEPS="$ALL_DEPS $i" 1.24 + [ -n "$2" ] && echo "$2$i" 1.25 + [ -f $i/receipt ] || continue 1.26 + DEPENDS="" 1.27 + . $i/receipt 1.28 + [ -n "$DEPENDS" ] && dep_scan "$DEPENDS" "$2 " 1.29 +done 1.30 +} 1.31 + 1.32 +# recursive reverse dependancies scan 1.33 +rdep_scan() 1.34 +{ 1.35 +for i in $1; do 1.36 + case " $ALL_DEPS " in 1.37 + *\ $i\ *) continue;; 1.38 + esac 1.39 + ALL_DEPS="$ALL_DEPS $i" 1.40 + [ -n "$2" ] && echo "$2$i" 1.41 + RDEPENDS="" 1.42 + for j in *; do 1.43 + [ -f $j/receipt ] || continue 1.44 + DEPENDS="" 1.45 + . $j/receipt 1.46 + case " $(echo $DEPENDS) " in 1.47 + *\ $i\ *) 1.48 + RDEPENDS="$RDEPENDS $j";; 1.49 + esac 1.50 + done 1.51 + [ -n "$RDEPENDS" ] && rdep_scan "$RDEPENDS" "$2 " 1.52 +done 1.53 +} 1.54 + 1.55 ################### 1.56 # Tazpkg commands # 1.57 ################### 1.58 @@ -2012,6 +2053,22 @@ 1.59 esac 1.60 done 1.61 ;; 1.62 + depends) 1.63 + # Display dependancies tree 1.64 + cd $INSTALLED 1.65 + ALL_DEPS="" 1.66 + if [ -f $2/receipt ]; then 1.67 + dep_scan $2 "" 1.68 + fi 1.69 + ;; 1.70 + rdepends) 1.71 + # Display reverse dependancies tree 1.72 + cd $INSTALLED 1.73 + ALL_DEPS="" 1.74 + if [ -f $2/receipt ]; then 1.75 + rdep_scan $2 "" 1.76 + fi 1.77 + ;; 1.78 usage|*) 1.79 # Print a short help or give usage for an unknown or empty command. 1.80 #