cookutils rev 788
cook: use option '--local' for tazpkg install local package (with local dependencies); better handle removing of old package
author | Aleksej Bobylev <al.bobylev@gmail.com> |
---|---|
date | Thu Dec 17 15:47:24 2015 +0200 (2015-12-17) |
parents | 36e267c88f80 |
children | b40b5b271d4d |
files | cook |
line diff
1.1 --- a/cook Wed Dec 16 18:39:00 2015 +0100 1.2 +++ b/cook Thu Dec 17 15:47:24 2015 +0200 1.3 @@ -710,7 +710,7 @@ 1.4 cd $PKGS 1.5 for i in $(uniq $CACHE/installed.local); do 1.6 _ 'Installing dep (pkg/local): %s' "$i" 1.7 - tazpkg install $i --root=$root --quiet 1.8 + tazpkg install $i --root=$root --local --quiet 1.9 done 1.10 1.11 # Install web or cached packages (if mirror is set to $PKGS we only 1.12 @@ -938,13 +938,21 @@ 1.13 rm -f $command 1.14 exit 1 1.15 else 1.16 - # Ls sort by name so the first file is the one we want. 1.17 - old=$(ls $PKGS/$pkg-*.tazpkg 2>/dev/null | head -n1) 1.18 - status 1.19 - if [ -f "$old" ]; then 1.20 - action 'Removing old package "%s"' "$(basename $old)" 1.21 - rm -f $old; status 1.22 - fi 1.23 + :; status 1.24 + # Find and remove old package(s) 1.25 + tempd="$(mktemp -d)"; cd "$tempd" 1.26 + for testpkg in $PKGS/$pkg-*.tazpkg; do 1.27 + # Extract receipt from each matched package 1.28 + cpio -F "$testpkg" -i receipt >/dev/null 2>&1 1.29 + name=$(. receipt; echo $PACKAGE) 1.30 + rm receipt 1.31 + if [ "$name" == "$pkg" ]; then 1.32 + action 'Removing old package "%s"' "$(basename "$testpkg")" 1.33 + rm -f "$testpkg" 1.34 + status 1.35 + fi 1.36 + done 1.37 + rm -r "$tempd" 1.38 mv -f $pkgdir/taz/$pkg-*.tazpkg $PKGS 1.39 sed -i /^${pkg}$/d $broken 1.40 #action 'Removing source tree...'