tazwok rev 95
Add 'tazwok cmp --cook'
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Fri Oct 03 07:59:59 2008 +0000 (2008-10-03) |
parents | c5af27ee2f6f |
children | d335ff8c479f |
files | tazwok |
line diff
1.1 --- a/tazwok Fri Sep 26 09:05:56 2008 +0000 1.2 +++ b/tazwok Fri Oct 03 07:59:59 2008 +0000 1.3 @@ -613,7 +613,7 @@ 1.4 local date 1.5 local mon 1.6 # Default date is Jan 1 1970 1.7 - [ -d $WOK/.hg ] || return 0 1.8 + [ -d $WOK/.hg -a -x /usr/bin/hg ] || { echo "0"; return; } 1.9 pkg=$(basename $1) 1.10 # Get date for last commit 1.11 date="$( cd $WOK; hg log $(find $pkg/receipt $pkg/stuff -type f \ 1.12 @@ -710,34 +710,39 @@ 1.13 for pkg in $WOK/* 1.14 do 1.15 . $pkg/receipt 1.16 - echo "$PACKAGE-$VERSION.tazpkg" >> /tmp/wok.list 1.17 + echo "$PACKAGE-$VERSION.tazpkg" >> /tmp/wok.list.$$ 1.18 tpkg="$(ls $PACKAGES_REPOSITORY/$PACKAGE-$VERSION*.tazpkg 2> /dev/null)" 1.19 if [ -z "$tpkg" ]; then 1.20 echo "Missing package: $PACKAGE ($VERSION)" 1.21 - echo "$PACKAGE" >> /tmp/pkgs.missing 1.22 + echo "$PACKAGE" >> /tmp/pkgs.missing.$$ 1.23 elif [ -f $pkg/taz/*/receipt -a ! -f $pkg/taz/*/md5sum ]; then 1.24 echo "Obsolete package: $PACKAGE ($VERSION)" 1.25 - echo "$PACKAGE" >> /tmp/pkgs.missing 1.26 + echo "$PACKAGE" >> /tmp/pkgs.missing.$$ 1.27 else 1.28 srcdate=$(hgdate $pkg) 1.29 pkgdate=$(date -u -r $tpkg '+%m%d%H%M%Y') 1.30 if [ $(date -d $pkgdate +%s) -lt $(date -d $srcdate +%s) ]; then 1.31 echo "Rebuild package: $PACKAGE ($VERSION) cooked $(date -d $pkgdate "+%x %X"), modified $(date -d $srcdate "+%x %X")" 1.32 - echo "$PACKAGE" >> /tmp/pkgs.missing 1.33 + echo "$PACKAGE" >> /tmp/pkgs.missing.$$ 1.34 + else 1.35 + continue 1.36 fi 1.37 fi 1.38 + if [ "$2" = "--cook" ]; then 1.39 + tazwok cook $PACKAGE 1.40 + fi 1.41 done 1.42 for pkg in `cd $PACKAGES_REPOSITORY && ls *.tazpkg` 1.43 do 1.44 - # grep $pkg in /tmp/wok.list 1.45 + # grep $pkg in /tmp/wok.list.$$ 1.46 # may include EXTRAVERSION or computed VERSION 1.47 - for i in $(grep ^${pkg%-*} /tmp/wok.list); do 1.48 + for i in $(grep ^${pkg%-*} /tmp/wok.list.$$); do 1.49 case "$pkg" in 1.50 ${i%.tazpkg}*.tazpkg) continue 2;; 1.51 esac 1.52 done 1.53 # Not found 1.54 - echo $pkg >> /tmp/pkgs.old 1.55 + echo $pkg >> /tmp/pkgs.old.$$ 1.56 if [ "$2" = "--remove" ]; then 1.57 echo "Removing package: $pkg" 1.58 rm $PACKAGES_REPOSITORY/$pkg 1.59 @@ -747,12 +752,12 @@ 1.60 done 1.61 cd /tmp 1.62 echo "================================================================================" 1.63 - echo "Wok: `cat wok.list | wc -l` - \ 1.64 + echo "Wok: `cat wok.list.$$ | wc -l` - \ 1.65 Cooked: `ls -1 $PACKAGES_REPOSITORY/*.tazpkg 2>/dev/null | wc -l` - \ 1.66 -Missing: `cat pkgs.missing 2>/dev/null | wc -l` - \ 1.67 -Old: `cat pkgs.old 2>/dev/null | wc -l`" 1.68 +Missing: `cat pkgs.missing.$$ 2>/dev/null | wc -l` - \ 1.69 +Old: `cat pkgs.old.$$ 2>/dev/null | wc -l`" 1.70 echo "" 1.71 - rm -f wok.list pkgs.old pkgs.missing 1.72 + rm -f wok.list.$$ pkgs.old.$$ pkgs.missing.$$ 1.73 ;; 1.74 list) 1.75 # List packages in wok directory. User can specifiy a category 1.76 @@ -908,16 +913,22 @@ 1.77 # Remove taz/ and source tree if exists. 1.78 if [ -d "taz" ]; then 1.79 echo -n "Removing taz files..." 1.80 - rm -rf taz && status 1.81 + rm -rf taz 1.82 + status 1.83 fi 1.84 - if [ -d "$PACKAGE-$VERSION" ]; then 1.85 + for i in $PACKAGE-$VERSION $SOURCE-$VERSION ; do 1.86 + [ -e "$i" ] || continue 1.87 echo -n "Removing source files..." 1.88 - rm -rf $PACKAGE-$VERSION && status 1.89 - fi 1.90 - if [ -d "$SOURCE-$VERSION" ]; then 1.91 - echo -n "Removing source files..." 1.92 - rm -rf $SOURCE-$VERSION && status 1.93 - fi 1.94 + if [ -L $i ]; then 1.95 + target=$(readlink $i) 1.96 + [ -d "$target" ] && case "$target" in 1.97 + /*|.|./*|..|../*);; 1.98 + *) rm -rf $target;; 1.99 + esac 1.100 + fi 1.101 + rm -rf $i 1.102 + status 1.103 + done 1.104 # Remove an envental $PACKAGE-build directory. 1.105 if [ -d "$PACKAGE-build" ]; then 1.106 echo -n "Removing build tree..."