uninstall.mk (755B)
1 <$mkpklib/defaults.mk 2 3 uninstall-package:QV: 4 record=$(grep $(printf "^%s\t" "$PKGBASE") "$PKGDB" 2>/dev/null \ 5 || echo '') 6 if [ -z "$record" ]; then 7 printf "Package %s is not installed\n" "$PKGBASE" >&2 8 exit 1 9 fi 10 ver=$(echo "$record" | cut -f2) 11 if [ -z "$ver" ]; then 12 printf "Corrupted record for %s in %s\n" \ 13 "$PKGBASE" "$PKGDB" >&2 14 exit 1 15 else 16 pkg=$PKGDIR/$PKGBASE-$ver.tar.xz 17 cd / 18 for item in $(xz -dc "$pkg" | tar -tf -); do 19 if [ -d "$item" ]; then 20 printf "( DIR\t%s skipped)\n" "$item" 21 continue 22 fi 23 printf " RM\t%s\n" "$item" 24 if ! rm "$item"; then 25 printf "(failed, ignored)\n" 26 fi 27 done 28 printf " UPD\t%s\n" "$PKGDB" 29 mv "$PKGDB" "$PKGDB"~ 30 sed "/^$PKGBASE/d" < "$PKGDB"~ >"$PKGDB" 31 fi