mkpk

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

install.mk (881B)


      1 <$mkpklib/defaults.mk
      2 
      3 install-package:QV:
      4 	recentver=$(find $PKGDIR/ -type f -prune -name "$PKGBASE-*.tar.xz" \
      5 		| sed 's,\([^0-9]\+[^-]-\)\+\([0-9].*\)\.tar\.xz,\2,' | $RECENT)
      6 	if [ -z "$recentver" ]; then
      7 		printf "Cannot find package %s\n" "$PKGBASE" >&2
      8 		exit 1
      9 	elif [ -n "$(grep "$(printf "^%s\t" "$PKGBASE")" "$PKGDB" 2>/dev/null \
     10 		|| echo '')" ]; then
     11 		printf "Package %s already installed\n" "$PKGBASE" >&2
     12 		exit 1
     13 	else
     14 		pkg=$PKGDIR/$PKGBASE-$recentver.tar.xz
     15 		sha=$PKGDIR/$PKGBASE-$recentver.sha512
     16 		cd "$PKGDIR"
     17 		printf "  SHA\t%s\n" "$sha"
     18 		if ! $SHA512SUM -c "$sha" >/dev/null 2>&1; then
     19 			printf "Checksum mismatch in %s\n" "$pkg" >&2
     20 			exit 1
     21 		fi
     22 		cd /
     23 		printf "  TAR\t%s\n" "$pkg"
     24 		xz -dc "$pkg" | tar -xf - 2>/dev/null
     25 		printf "  UPD\t%s\n" "$PKGDB"
     26 		printf "%s\t%s\t%s\n" "$PKGBASE" "$recentver" \
     27 			"$(date +'%Y-%m-%d %T')" >>"$PKGDB"
     28 	fi