tazwok rev 76

Add tazwok check
author Pascal Bellard <pascal.bellard@slitaz.org>
date Tue Jul 15 13:07:51 2008 +0000 (2008-07-15)
parents 30f4d731f3e9
children 6817f976da1c
files tazwok
line diff
     1.1 --- a/tazwok	Thu Jul 03 19:28:07 2008 +0000
     1.2 +++ b/tazwok	Tue Jul 15 13:07:51 2008 +0000
     1.3 @@ -228,6 +228,35 @@
     1.4  		esac
     1.5  	fi
     1.6  }
     1.7 +
     1.8 +# Check for loop in deps tree.
     1.9 +check_for_deps_loop()
    1.10 +{
    1.11 +	local list
    1.12 +	local pkg
    1.13 +	local deps
    1.14 +	pkg=$1
    1.15 +	shift
    1.16 +	[ -n "$1" ] || return
    1.17 +	list=""
    1.18 +	# Filter out already processed deps
    1.19 +	for i in $@; do
    1.20 +		case " $ALL_DEPS" in
    1.21 +		*\ $i\ *);;
    1.22 +		*) list="$list $i";;
    1.23 +		esac
    1.24 +	done
    1.25 +	ALL_DEPS="$ALL_DEPS$list "
    1.26 +	for i in $list; do
    1.27 +		[ -f $i/receipt ] || continue
    1.28 +		deps="$(DEPENDS=""; . $i/receipt; echo $DEPENDS)"
    1.29 +		case " $deps " in
    1.30 +		*\ $pkg\ *) echo -e "$MSG  $i"; MSG="";;
    1.31 +		*) check_for_deps_loop $pkg $deps;;
    1.32 +		esac
    1.33 +	done
    1.34 +}
    1.35 +
    1.36  download()
    1.37  {
    1.38  	for file in $@; do
    1.39 @@ -574,6 +603,38 @@
    1.40  ================================================================================"
    1.41  		echo ""
    1.42  		;;
    1.43 +	check)
    1.44 +		# Check wok consistancy
    1.45 +		echo ""
    1.46 +		echo -e "\033[1mWok and packages checking\033[0m
    1.47 +================================================================================"
    1.48 +		for pkg in $WOK/*
    1.49 +		do
    1.50 +			[ -f $pkg/receipt ] || continue
    1.51 +			PACKAGE=""
    1.52 +			VERSION=""
    1.53 +			CATEGORY=""
    1.54 +			SHORT_DESC=""
    1.55 +			MAINTAINER=""
    1.56 +			WEB_SITE=""
    1.57 +			. $pkg/receipt
    1.58 +			[ "$PACKAGE" = "$pkg" ] || echo "Package $PACKAGE should be $pkg"
    1.59 +			[ -n "$VERSION" ] || echo "Package $PACKAGE has no VERSION"
    1.60 +			[ -n "$CATEGORY" ] || echo "Package $PACKAGE has no CATEGORY"
    1.61 +			[ -n "$SHORT_DESC" ] || echo "Package $PACKAGE has no SHORT_DESC"
    1.62 +			[ -n "$MAINTAINER" ] || echo "Package $PACKAGE has no MAINTAINER"
    1.63 +			[ -n "$WEB_SITE" ] || echo "Package $PACKAGE has no WEB_SITE"
    1.64 +			MSG="Missing dependencies for $PACKAGE $VERSION$EXTRAVERSION :\n"
    1.65 +			for i in $DEPENDS; do
    1.66 +				[ -d $i ] && continue
    1.67 +				echo -e "$MSG  $i"
    1.68 +				MSG=""
    1.69 +			done
    1.70 +			MSG="Dependencies loop between $PACKAGE and :\n"
    1.71 +			ALL_DEPS=""
    1.72 +			check_for_deps_loop $PACKAGE $DEPENDS
    1.73 +		done
    1.74 +		;;
    1.75  	cmp|compare)
    1.76  		# Compare the wok and packages repository to help maintaining 
    1.77  		# a mirror.
    1.78 @@ -584,7 +645,7 @@
    1.79  		do
    1.80  			. $pkg/receipt
    1.81  			echo "$PACKAGE-$VERSION.tazpkg" >> /tmp/wok.list
    1.82 -			if [ -z "$(ls $PACKAGES_REPOSITORY/$PACKAGE-$VERSION*.tazpkg 2>-)" ]; then
    1.83 +			if [ -z "$(ls $PACKAGES_REPOSITORY/$PACKAGE-$VERSION*.tazpkg 2> /dev/null)" ]; then
    1.84  				echo "Missing package: $PACKAGE ($VERSION)"
    1.85  				echo "$PACKAGE" >> /tmp/pkgs.missing
    1.86  			fi