Files

21 lines
1.1 KiB
Bash
Executable File

#!/bin/sh
# Build crossbar for hyperborea (arm64, static) on this machine and install it there as a
# systemd --user unit. Run from anywhere inside the repo. Idempotent: re-running upgrades in place.
set -eu
HOST=${HOST:-hyperborea}
DIR=/srv/crossbar
cd "$(git rev-parse --show-toplevel)"
out=$(mktemp -t crossbar-arm64.XXXXXX)
trap 'rm -f "$out"' EXIT
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -trimpath -ldflags="-s -w" -o "$out" ./cmd/crossbar
ssh "$HOST" "mkdir -p $DIR ~/.config/systemd/user"
scp -q "$out" "$HOST:$DIR/crossbar.new"
scp -q deploy/hyperborea/crossbar.toml "$HOST:$DIR/crossbar.toml"
scp -q deploy/hyperborea/crossbar.service "$HOST:.config/systemd/user/crossbar.service"
ssh "$HOST" "chmod 755 $DIR/crossbar.new && mv $DIR/crossbar.new $DIR/crossbar \
&& systemctl --user daemon-reload && systemctl --user enable crossbar.service >/dev/null 2>&1 \
&& systemctl --user restart crossbar.service && sleep 2 && systemctl --user is-active crossbar.service"
echo "installed; hosts view:"
curl -fsS "http://$HOST.scylla-hammerhead.ts.net:7777/_crossbar/hosts"
echo