чување 5a3c77821a951f6008122273b06b3a0a99f9e357
родитељ 906195064fc05f3ca3c036329cfdb031fa039c4f
Аутор: Страхиња Радић <contact@strahinja.org>
Датум: Tue, 2 Aug 2022 13:14:38 +0200
Add list
Signed-off-by: Страхиња Радић <contact@strahinja.org>
Diffstat:
измењених датотека: 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