mkpk

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

чување 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:
Mlib/defaults.mk | 13+++++++++++++
Mlib/standard.mk | 19+++++++++++++++++--
Mmkfile | 20+++++++-------------
Amkpk.8 | 67+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
измењених датотека: 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.