чување 5da1cf6f8f4cb394f810e7326f976a2ea6cf8987 родитељ 21ff8bad793e1fae7b5b6449754a0354c7026656 Аутор: Страхиња Радић <contact@strahinja.org> Датум: Thu, 4 Aug 2022 11:48:08 +0200 Uninstall based on record in pkgdb.tsv, not based on file system Signed-off-by: Страхиња Радић <contact@strahinja.org> Diffstat:
| M | lib/uninstall.mk | | | 16 | +++++++++------- |
измењених датотека: 1, додавања: 9(+), брисања: 7(-)
diff --git a/lib/uninstall.mk b/lib/uninstall.mk @@ -1,16 +1,18 @@ <$mkpklib/defaults.mk uninstall-package:QV: - recentver=$(find ${PKGDIR}/ -type f -prune -name "${PKGBASE}-*.tar.xz" \ - | sed 's,\([^0-9]\+[^-]-\)\+\([0-9].*\)\.tar\.xz,\2,' | recent) - if [ -z "${recentver}" ]; then - printf "Cannot find package %s\n" "${PKGBASE}" >&2 - exit 1 - elif [ -z "$(grep "^${PKGBASE}\t" "${PKGDB}" 2>/dev/null)" ]; then + record=$(grep "^${PKGBASE}\t" "${PKGDB}" 2>/dev/null) + if [ -z "${record}" ]; then printf "Package %s is not installed\n" "${PKGBASE}" >&2 exit 1 + fi + ver=$(echo "${record}" | cut -f2) + if [ -z "${ver}" ]; then + printf "Corrupted record for %s in %s\n" \ + "${PKGBASE}" "${PKGDB}" >&2 + exit 1 else - pkg=${PKGDIR}/${PKGBASE}-${recentver}.tar.xz + pkg=${PKGDIR}/${PKGBASE}-${ver}.tar.xz cd / for item in $(xz -dc "${pkg}" | tar -tf -); do if [ -d "${item}" ]; then