diff options
Diffstat (limited to 'packages/scripts/pkg-dtail-freebsd.sh')
| -rw-r--r-- | packages/scripts/pkg-dtail-freebsd.sh | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/packages/scripts/pkg-dtail-freebsd.sh b/packages/scripts/pkg-dtail-freebsd.sh new file mode 100644 index 0000000..1d42aaf --- /dev/null +++ b/packages/scripts/pkg-dtail-freebsd.sh @@ -0,0 +1,79 @@ +#!/bin/sh +# Build a FreeBSD dtail package from pre-compiled binaries and upload to the repo PV. +# Run on f0 via SSH. Called by the Makefile. +# +# Arguments: +# $1 — version (e.g. 4.3.2-ng) +# $2 — PV destination (e.g. /data/nfs/k3svolumes/pkgrepo/freebsd/FreeBSD:15:amd64/latest) + +set -e + +VERSION="$1" +PV_DEST="$2" +NAME="dtail" +COMMENT="Distributed log tail and grep tool" +DESC="DTail is a distributed DevOps tool for tailing, grepping, catting, and mapping across many remote machines at once via SSH." +MAINTAINER="paul@buetow.org" +WWW="https://codeberg.org/snonux/dtail" + +WORKDIR="/tmp/${NAME}-freebsd-pkg" +rm -rf "$WORKDIR" +mkdir -p \ + "$WORKDIR/stage/usr/local/bin" \ + "$WORKDIR/stage/usr/local/etc/rc.d" \ + "$WORKDIR/stage/usr/local/etc/dserver" \ + "$WORKDIR/out/All" + +# Binaries (cross-compiled linux→freebsd with nozstd; .zst logs not supported) +for bin in dserver dcat dgrep dmap dtail dtailhealth; do + cp "/tmp/dtail-freebsd-binaries/${bin}" "$WORKDIR/stage/usr/local/bin/${bin}" + chmod 755 "$WORKDIR/stage/usr/local/bin/${bin}" +done + +# Key cache helper (sh-compatible; walks /home/ on FreeBSD) +cp "/tmp/dtail-freebsd-binaries/dserver-update-key-cache.sh" \ + "$WORKDIR/stage/usr/local/bin/dserver-update-key-cache.sh" +chmod 555 "$WORKDIR/stage/usr/local/bin/dserver-update-key-cache.sh" + +# rc.d script (FreeBSD rc.subr style; config at /usr/local/etc/dserver/dtail.json) +cp "/tmp/dtail-freebsd-binaries/dserver.rc" \ + "$WORKDIR/stage/usr/local/etc/rc.d/dserver" +chmod 555 "$WORKDIR/stage/usr/local/etc/rc.d/dserver" + +# Config +cp "/tmp/dtail-freebsd-binaries/dtail.json" \ + "$WORKDIR/stage/usr/local/etc/dserver/dtail.json" +chmod 644 "$WORKDIR/stage/usr/local/etc/dserver/dtail.json" + +# Packing list — paths relative to /usr/local prefix +cat > "$WORKDIR/plist" <<'PLIST' +bin/dserver +bin/dcat +bin/dgrep +bin/dmap +bin/dtail +bin/dtailhealth +bin/dserver-update-key-cache.sh +etc/rc.d/dserver +etc/dserver/dtail.json +PLIST + +# Package manifest (UCL) +cat > "$WORKDIR/+MANIFEST" <<MANIFEST +name: "${NAME}" +version: "${VERSION}" +origin: "local/${NAME}" +comment: "${COMMENT}" +desc: "${DESC}" +maintainer: "${MAINTAINER}" +www: "${WWW}" +prefix: /usr/local +MANIFEST + +# Build package, regenerate repo metadata, copy to PV +doas pkg create -M "$WORKDIR/+MANIFEST" -p "$WORKDIR/plist" -r "$WORKDIR/stage" -o "$WORKDIR/out/All" +doas pkg repo "$WORKDIR/out" +doas cp -Rf "$WORKDIR/out/"* "$PV_DEST/" + +rm -rf "$WORKDIR" /tmp/dtail-freebsd-binaries /tmp/pkg-dtail-freebsd.sh +echo "FreeBSD package ${NAME}-${VERSION} uploaded to repo" |
