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  		#