summaryrefslogtreecommitdiff
path: root/packages/scripts/pkg-dtail-freebsd.sh
blob: 1d42aaff1cd3981d67fb7136b2428f3037111ffb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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"