чување 91c12578a6a0d2e36f2c76fd96674b33a61fd79c
родитељ 0fa51d3e0d5ab110db7fa9f7b39960ddbb899ea1
Аутор: Страхиња Радић <contact@strahinja.org>
Датум: Thu, 4 Aug 2022 15:33:40 +0200
Add manpage; modify standard install/uninstall targets to be more flexible
Signed-off-by: Страхиња Радић <contact@strahinja.org>
Diffstat:
измењених датотека: 4, додавања: 104(+), брисања: 15(-)
diff --git a/lib/defaults.mk b/lib/defaults.mk
@@ -41,3 +41,16 @@ SED= `{ if [ -n "$SED" ]; then echo $SED; else echo sed; fi }
SHA512SUM= `{ if [ -n "$SHA512SUM" ]; then echo $SHA512SUM; \
else echo sha512sum; fi }
TAR= `{ if [ -n "$TAR" ]; then echo $TAR; else echo tar; fi }
+
+install_target= `{ if [ -n "$install_target" ]; then \
+ echo $install_target; \
+ else echo install; fi }
+install_sources= `{ if [ -n "$install_sources" ]; then \
+ echo $install_sources; \
+ else echo install-standard; fi }
+uninstall_target= `{ if [ -n "$uninstall_target" ]; then \
+ echo $uninstall_target; \
+ else echo uninstall; fi }
+uninstall_sources= `{ if [ -n "$uninstall_sources" ]; then \
+ echo $uninstall_sources; \
+ else echo uninstall-standard; fi }
diff --git a/lib/standard.mk b/lib/standard.mk
@@ -12,11 +12,22 @@ clean:QV:
rm -f $junkitem
done
-install:QV: all
+$install_target:QV: $install_sources
+$uninstall_target:QV: $uninstall_sources
+
+install-standard:QV: all
for binary in $BIN $SCRIPTS; do
printf " INST\t%s\n" "$binary"
$INSTALL -Dm0755 "$binary" "$BINDIR/$binary"
done
+ for doc in $DOCS; do
+ printf " INST\t%s\n" "$doc"
+ $INSTALL -Dm644 "$doc" "$DOCDIR/$doc"
+ done
+ for libfile in $LIBFILES; do
+ printf " INST\t%s\n" "$libfile"
+ $INSTALL -Dm644 "$libfile" "$LIBDIR/$libfile"
+ done
for manpage in $MAN1; do
printf " INST\t%s\n" "$manpage"
$INSTALL -Dm644 "$manpage" "$MANDIR/man1/$manpage"
@@ -50,7 +61,11 @@ install:QV: all
$INSTALL -Dm644 "$manpage" "$MANDIR/man8/$manpage"
done
-uninstall:QV:
+uninstall-standard:QV:
+ for extrafiles in $EXTRAFILES; do
+ printf " RM\t%s\n" "$extrafile"
+ rm -f "$extrafile"
+ done
for binary in $BIN $SCRIPTS; do
printf " RM\t%s\n" "$BINDIR/$binary"
rm -f "$BINDIR/$binary"
diff --git a/mkfile b/mkfile
@@ -1,24 +1,18 @@
<config.mk
+install_sources=preinstall install-standard
<lib/defaults.mk
MKFILES= `{find lib -name '*.mk' | sed 's,lib/,,'}
+LIBFILES= $MKFILES
DOCS= README
+MAN8= mkpk.8
SCRIPTS= mkpk recent
+EXTRAFILES= $EXTRAFILES $PKGDB
-install:QV:
+<lib/standard.mk
+
+preinstall: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" $LIBDIR/$mkfile
- install -Dm0644 lib/$mkfile $LIBDIR/$mkfile
- done
- for script in $SCRIPTS; do
- printf " INST\t%s\n" $BINDIR/$script
- install -Dm0755 $script $BINDIR/$script
- done
- for doc in $DOCS; do
- printf " INST\t%s\n" $DOCDIR/$doc
- install -Dm0644 $doc $DOCDIR/$doc
- done
diff --git a/mkpk.8 b/mkpk.8
@@ -0,0 +1,67 @@
+.Dd August 4, 2022
+.Dt MKPK 8 SMM
+.Os Galeb 2.0
+.Sh NAME
+.Nm mkpk
+.Nd Packaging system using Plan9 mk
+.Sh SYNOPSIS
+.Nm
+.Op Ar operation
+.Op Ar package
+.Sh DESCRIPTION
+.Nm
+is a helper tool passing specific mkfiles to
+.Xr mk 1
+to manage packages.
+.Ar operation
+can be one of the following:
+.
+.Bl -tag -width ".Nm install" -offset indent
+.It Nm Cm build Ar package
+Builds the
+.Ar package
+tarball and puts it into
+.Ev PKGDIR .
+.
+.It Nm Cm fetch Ar package
+Downloads the necessary sources to build
+.Ar package
+to the directory
+.Ev SRCBASEDIR .
+.
+.It Nm Cm info Ar package
+Shows information about the installed tarball of a
+.Ar package .
+.
+.It Nm Cm install Ar package
+Installs the files from a built tarball of a
+.Ar package .
+.
+.It Nm Cm list Ar package
+Lists files from the installed tarball of a
+.Ar package .
+.
+.It Nm Cm uninstall Ar package
+Uninstalls the installed
+.Ar package
+by unlinking files from the filelist of its tarball.
+.
+.It Nm Cm update
+Updates the mkfiles repository.
+.El
+.Sh FILES
+.Bl -tag -width ".Pa /pkg/pkgdb.tsv"
+.It Pa /pkg/pkgdb.tsv
+Package database; TSV file holding the names, versions and installation times of
+all installed packages.
+.
+.It Pa /lib/mkpk/*.mk
+Mkfiles to be included into individual package's mkfiles or called by the
+.Nm
+helper.
+.El
+.Sh "SEE ALSO"
+.Xr mk 1
+.Sh AUTHORS
+.An "Strahinya Radich" Aq contact@strahinja.org ,
+2022.