wok rev 4717

slitaz-dev-tools: add tazdev purge
author Pascal Bellard <pascal.bellard@slitaz.org>
date Tue Jan 05 11:56:30 2010 +0100 (2010-01-05)
parents ca310437a4a4
children 8fbfc72ff1a2
files slitaz-dev-tools/stuff/tazdev
line diff
     1.1 --- a/slitaz-dev-tools/stuff/tazdev	Mon Jan 04 23:24:52 2010 +0100
     1.2 +++ b/slitaz-dev-tools/stuff/tazdev	Tue Jan 05 11:56:30 2010 +0100
     1.3 @@ -30,6 +30,7 @@
     1.4   chroot         Mount virtual fs if needed and chroot into the build env.
     1.5   gen-chroot     Generate a chroot using the last cooking base rootfs.
     1.6   clean-chroot   Clean a chroot environment (skip root/ and home/).
     1.7 + purge          Remove obsolate packages and obsolate source tarballs.
     1.8   push           Upload new packages to the main mirror (-p).
     1.9   dry-push       Show what will be uploaded to the mirror. Does nothing (-dp).
    1.10   pull           Download new packages from the main mirror.
    1.11 @@ -145,6 +146,45 @@
    1.12  	echo -e "Example: tazdev chroot $ROOTFS\n"
    1.13  }
    1.14  
    1.15 +# Remove obsolate slitaz packages
    1.16 +purge_packages()
    1.17 +{
    1.18 +	TMP_FILE=/tmp/tazdev.$$
    1.19 +	ls $BUILD_WOK | while read pkg; do
    1.20 +		[ -f $BUILD_WOK/$pkg/taz/*/receipt ] || continue
    1.21 +		EXTRAVERSION=""
    1.22 +		. $BUILD_WOK/$pkg/taz/*/receipt
    1.23 +		echo $PACKAGE-$VERSION$EXTRAVERSION.tazpkg
    1.24 +	done > $TMP_FILE
    1.25 +	ls $SLITAZ/chroot/home/slitaz/packages | while read pkg; do
    1.26 +		case "$pkg" in
    1.27 +		*.tazpkg)
    1.28 +			grep -q ^$pkg$ $TMP_FILE && continue
    1.29 +			echo Remove $pkg
    1.30 +			rm -f $SLITAZ/chroot/home/slitaz/packages/$pkg ;;
    1.31 +		esac
    1.32 +	done
    1.33 +	rm -f $TMP_FILE
    1.34 +}
    1.35 +
    1.36 +# Remove obsolate source tarballs
    1.37 +purge_sources()
    1.38 +{
    1.39 +	TMP_FILE=/tmp/tazdev.$$
    1.40 +	ls $BUILD_WOK | while read pkg; do
    1.41 +		[ -f $BUILD_WOK/$pkg/taz/*/receipt ] || continue
    1.42 +		TARBALL=""
    1.43 +		. $BUILD_WOK/$pkg/taz/*/receipt
    1.44 +		[ -n "$TARBALL" ] && echo $TARBALL
    1.45 +	done > $TMP_FILE
    1.46 +	ls $SLITAZ/chroot/home/slitaz/src | while read pkg; do
    1.47 +		grep -q ^$pkg$ $TMP_FILE && continue
    1.48 +		echo Remove $pkg
    1.49 +		rm -f $SLITAZ/chroot/home/slitaz/src/$pkg
    1.50 +	done
    1.51 +	rm -f $TMP_FILE
    1.52 +}
    1.53 +
    1.54  case "$1" in
    1.55  	cmplog)
    1.56  		# Log 'tazwok cmp' for the web interface (can be used via a cron job).
    1.57 @@ -260,6 +300,12 @@
    1.58  		check_mirror $@
    1.59  		rsync -r -t -l -v -z --delete --dry-run \
    1.60  			-e ssh $USER@$MIRROR:$REMOTE_DIR $LOCAL_DIR ;;
    1.61 +	purge)
    1.62 +		check_root
    1.63 +		get_version $@
    1.64 +		purge_packages
    1.65 +		purge_sources
    1.66 +		;;
    1.67  	usage|*)
    1.68  		usage ;;
    1.69  esac