Recently Written · git

sbm-sync

Sync server for sbm bookmark files: one small Go program, plain files, AGPL

git clone https://github.com/equwal/sbm-sync

Log | Files | Refs


contrib/deploy.sh (1427 bytes)

1 #!/bin/sh
2 # deploy.sh: build sbm-sync for Linux and install it on a server that runs
3 # sbm-sync.service (see sbm-sync.service) with systemd and nginx.
4 #
5 #     sh contrib/deploy.sh root@example.org
6 #
7 # The script keeps the old binary as /usr/local/bin/sbm-sync.bak-<time>,
8 # installs sfeed for the feed job, and starts sbm-feed.timer.
9 set -e
10 host=${1:?usage: sh contrib/deploy.sh user@host}
11 cd "$(dirname "$0")/.."
12 GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -trimpath -o sbm-sync-linux .
13 scp sbm-sync-linux contrib/sbm-feed.service contrib/sbm-feed.timer "$host:/tmp/"
14 rm sbm-sync-linux
15 ssh "$host" sh -s << 'EOF'
16 set -e
17 if ! command -v sfeed_update >/dev/null; then
18     DEBIAN_FRONTEND=noninteractive apt-get install -y -q sfeed
19 fi
20 if [ -f /usr/local/bin/sbm-sync ]; then
21     cp -p /usr/local/bin/sbm-sync "/usr/local/bin/sbm-sync.bak-$(date +%Y%m%d-%H%M%S)"
22 fi
23 install -m 755 /tmp/sbm-sync-linux /usr/local/bin/sbm-sync
24 install -m 644 /tmp/sbm-feed.service /tmp/sbm-feed.timer /etc/systemd/system/
25 rm /tmp/sbm-sync-linux /tmp/sbm-feed.service /tmp/sbm-feed.timer
26 systemctl daemon-reload
27 systemctl restart sbm-sync
28 systemctl enable --now sbm-feed.timer
29 sleep 1
30 if ! systemctl is-active --quiet sbm-sync; then
31     journalctl -u sbm-sync -n 20 --no-pager
32     exit 1
33 fi
34 echo "sbm-sync: $(systemctl is-active sbm-sync), sbm-feed.timer: $(systemctl is-active sbm-feed.timer)"
35 systemctl list-timers sbm-feed.timer --no-pager
36 EOF