чување c0d480678bdc6a38fa1e4b3c34544dcc3ef06e3f
родитељ bc6588547982dc47dc71b8849f9d32a8723b4612
Аутор: Страхиња Радић <contact@strahinja.org>
Датум: Tue, 2 Aug 2022 15:23:36 +0200
Add package database
Signed-off-by: Страхиња Радић <contact@strahinja.org>
Diffstat:
измењених датотека: 4, додавања: 23(+), брисања: 5(-)
diff --git a/lib/defaults.mk b/lib/defaults.mk
@@ -9,6 +9,7 @@ DOCDIR= /share/doc/$PKG
LEGALDIR= /share/legal/$PKG
PKGDIR= /pkg
SRCBASEDIR= /src
+PKGDB= $PKGDIR/pkgdb.tsv
SUCKS= $DESTDIR/sucks
SUCKSBIN= $SUCKS/bin
diff --git a/lib/install.mk b/lib/install.mk
@@ -1,12 +1,19 @@
<$mkpklib/defaults.mk
install-package:QV:
- pkg=$(find "$PKGDIR" -name "$PKGBASE-*.tar.xz")
+ pkg=$(find "${PKGDIR}" -name "${PKGBASE}-*.tar.xz")
if [ -z "${pkg}" ]; then
- printf "Cannot find package %s" "$PKGBASE" >&2
+ printf "Cannot find package %s\n" "${PKGBASE}" >&2
+ exit 1
+ elif [ -n "$(grep "^${PKGBASE}\t" "${PKGDB}" 2>/dev/null)" ]; then
+ printf "Package %s already installed\n" "${PKGBASE}" >&2
exit 1
else
cd /
- printf " TAR/XZ\t%s\n" "${pkg}"
+ printf " TAR\t%s\n" "${pkg}"
xz -dc "${pkg}" | tar -xf - 2>/dev/null
+ printf " UPD\t%s\n" "${PKGDB}"
+ printf "%s\t%s\t%s\n" "${PKGBASE}" \
+ "$(echo "${pkg}" | sed "s,${PKGBASE}-,,")" \
+ "$(date +'%Y-%m-%d %T')" >>"${PKGDB}"
fi
diff --git a/lib/uninstall.mk b/lib/uninstall.mk
@@ -1,9 +1,12 @@
<$mkpklib/defaults.mk
uninstall-package:QV:
- pkg=$(find "$PKGDIR" -name "$PKGBASE-*.tar.xz")
+ pkg=$(find "${PKGDIR}" -name "${PKGBASE}-*.tar.xz")
if [ -z "${pkg}" ]; then
- printf "Cannot find package %s" "$PKGBASE" >&2
+ printf "Cannot find package %s\n" "${PKGBASE}" >&2
+ exit 1
+ elif [ -z "$(grep "^${PKGBASE}\t" "${PKGDB}" 2>/dev/null)" ]; then
+ printf "Package %s is not installed\n" "${PKGBASE}" >&2
exit 1
else
cd /
@@ -15,4 +18,7 @@ uninstall-package:QV:
printf " RM\t%s\n" "${item}"
rm "${item}"
done
+ printf " UPD\t%s\n" "${PKGDB}"
+ mv "${PKGDB}" "${PKGDB}"~
+ sed "/^${PKGBASE}/d" < "${PKGDB}"~ >"${PKGDB}"
fi
diff --git a/mkfile b/mkfile
@@ -5,6 +5,10 @@ DOCS= README
SCRIPTS= mkpk
install:QV:
+ if [ ! -e "$PKGDB" ]; then
+ printf " GEN\t%s\n" "$PKGDB"
+ printf "Package\tVersion\tInstallation Date\n" >"$PKGDB"
+ fi
for mkfile in $MKFILES; do
printf " INST\t%s\n" $DESTDIR/$mkfile
install -Dm0644 lib/$mkfile $DESTDIR/$mkfile