mkpk

Систем за управљање пакетима који користи mk из система Plan9
git clone https://git.sr.ht/~strahinja/mkpk
Дневник | Датотеке | Референце | ПРОЧИТАЈМЕ | ЛИЦЕНЦА

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