mkpk

Систем за управљање пакетима који користи mk из система Plan9
Дневник | Датотеке | Референце | ПРОЧИТАЈМЕ | ЛИЦЕНЦА

чување 5a3c77821a951f6008122273b06b3a0a99f9e357
родитељ 906195064fc05f3ca3c036329cfdb031fa039c4f
Аутор: Страхиња Радић <contact@strahinja.org>
Датум:   Tue,  2 Aug 2022 13:14:38 +0200

Add list

Signed-off-by: Страхиња Радић <contact@strahinja.org>

Diffstat:
MREADME | 3++-
ATODO | 6++++++
Ainstall.mk | 12++++++++++++
Mlib/defaults.mk | 4++--
Alib/listfiles.mk | 9+++++++++
Alib/uninstall.mk | 12++++++++++++
Mlib/vars.mk | 8++++----
Mmkpk | 32++++++++++++++++----------------
измењених датотека: 8, додавања: 63(+), брисања: 23(-)

diff --git a/README b/README @@ -36,9 +36,10 @@ $ doas mk package-install # installs the above to PKGDIR mkpk helper usage ----------------- -# mkpk fetch mypackage # fetches the sources to SYSSRCDIR +# mkpk fetch mypackage # fetches the sources to SRCBASEDIR # mkpk build mypackage # builds the mypackage tarball and puts it # into PKGDIR +# mkpk list mypackage # lists files in a built tarball # mkpk install mypackage # installs the built tarball # mkpk uninstall mypackage # uninstalls the package using tarball as # filelist diff --git a/TODO b/TODO @@ -0,0 +1,6 @@ +TODO +==== + +[ ] mkpk fetch + +[ ] Install dependencies (it would call `mk -f $mkpklib/install.mk`) diff --git a/install.mk b/install.mk @@ -0,0 +1,12 @@ +<$mkpkllib/defaults.mk + +install-package:QV: + pkg=$(find "$PKGDIR" -name "$PKGBASE-*.tar.xz") + if [ -z "${pkg}" ]; then + printf "Cannot find package %s" "$PKGBASE" >&2 + exit 1 + else + cd / + printf " TAR/XZ\t%s\n" "${pkg}" + xz -dc "${pkg}" | tar -xf - + fi diff --git a/lib/defaults.mk b/lib/defaults.mk @@ -7,7 +7,7 @@ MANDIR= $DESTDIR$PREFIX/share/man DOCDIR= /share/doc/$PKG LEGALDIR= /share/legal/$PKG PKGDIR= /pkg -SYSSRCDIR= /src +SRCBASEDIR= /src SUCKS= $DESTDIR/sucks SUCKSBIN= $SUCKS/bin @@ -33,4 +33,4 @@ PROOT= `{ if [ -n "$PROOT" ]; then echo $PROOT; \ SED= `{ if [ -n "$SED" ]; then echo $SED; else echo sed; fi } SHA512SUM= `{ if [ -n "$SHA512SUM" ]; then echo $SHA5512SUM; \ else echo sha512sum; fi } -TAR= `{ if [ -n "$TAR" ]; then echo $TAR; else echo tar; fi } +TAR= `{ if [ -n "$TAR" ]; then echo $TAR; else echo tar; fi } diff --git a/lib/listfiles.mk b/lib/listfiles.mk @@ -0,0 +1,9 @@ +<$mkpklib/defaults.mk + +listfiles:QV: + pkg=$(find "$PKGDIR" -name "$PKGBASE-*.tar.xz") + if [ -z "${pkg}" ]; then + printf "Cannot find package %s" "$PKGBASE" >&2 + else + xz -dc "${pkg}" | tar -tf - + fi diff --git a/lib/uninstall.mk b/lib/uninstall.mk @@ -0,0 +1,12 @@ +<$mkpkllib/defaults.mk + +uninstall-package:QV: + pkg=$(find "$PKGDIR" -name "$PKGBASE-*.tar.xz") + if [ -z "${pkg}" ]; then + printf "Cannot find package %s" "$PKGBASE" >&2 + exit 1 + else + cd / + printf " RM\t%s\n" "${pkg}" + xz -dc "${pkg}" | tar -tf - | xargs rm + fi diff --git a/lib/vars.mk b/lib/vars.mk @@ -1,7 +1,7 @@ <$mkpklib/defaults.mk output:QV: - printf "%s=\"%s\"\n" DOCDIR "$DOCDIR" - printf "%s=\"%s\"\n" LEGALDIR "$LEGALDIR" - printf "%s=\"%s\"\n" PKGDIR "$PKGDIR" - printf "%s=\"%s\"\n" SYSSRCDIR "$SYSSRCDIR" + printf "%s=\"%s\"\n" DOCDIR "$DOCDIR" + printf "%s=\"%s\"\n" LEGALDIR "$LEGALDIR" + printf "%s=\"%s\"\n" PKGDIR "$PKGDIR" + printf "%s=\"%s\"\n" SRCBASEDIR "$SRCBASEDIR" diff --git a/mkpk b/mkpk @@ -3,12 +3,7 @@ usage() { cat <<! >&2 -Usage: ${0##*/} [command] [package] - Where command is one of: - fetch - build - install - uninstall +Usage: ${0##*/} [build|fetch|install|list|uninstall] [package] ! } @@ -25,28 +20,32 @@ fetch() echo noop } -cd_or_fail() +build() { - if [ ! -d "$1" ]; then - error "Directory %s does not exist (try fetch?)" "$1" + local found=$(find ${SRCBASEDIR} -type d -name "${package}-*" | sed 1q) + if [ -z "${found}" ]; then + error "Directory %s does not exist (try fetch?)" "${package}" fi - cd "$1" + cd "${found}" + mk package-install } -build() +list() { - cd_or_fail "${SYSSRCDIR}/${package}"-* - mk package-install + "${MK}" -f "${mkpklib}"/listfiles.mk mkpklib="${mkpklib}" \ + PKGBASE="${package}" } install() { - echo noop + "${MK}" -f "${mkpklib}"/install.mk mkpklib="${mkpklib}" \ + PKGBASE="${package}" } uninstall() { - echo noop + "${MK}" -f "${mkpklib}"/uninstall.mk mkpklib="${mkpklib}" \ + PKGBASE="${package}" } if [ "$(id -u)" -ne 0 ]; then @@ -60,11 +59,12 @@ command=$1 package=$2 mkpklib=${mkpklib:-/lib/mkpk} MK=${MK:-/plan9/bin/mk} -eval $(${MK} -f $mkpklib/vars.mk mkpklib=$mkpklib) +eval $("${MK}" -f "${mkpklib}"/vars.mk mkpklib="${mkpklib}") case ${command} in fetch) fetch;; build) build;; + list) list;; install) install;; uninstall) uninstall;; *) usage