nose-pluto/scripts/deploy.sh
Chris Wanstrath e02c71a588 eh
2025-09-22 12:44:15 -07:00

30 lines
782 B
Bash
Executable File

#!/usr/bin/env bash
##
# deploys from your dev machine to your NOSEputer
set -euo pipefail
source "./config.sh"
SOCK="$HOME/.ssh/cm-%r@%h:%p"
# 1) Open a master connection (prompts once)
ssh -MNf -o ControlMaster=yes -o ControlPersist=120 \
-o ControlPath="$SOCK" "$HOST"
# 2) rsync (reuses the connection)
rsync -az --delete \
-e "ssh -o ControlPath=$SOCK" \
--exclude 'node_modules/' \
--exclude '.git/' \
./ "$HOST:$DEST/"
# 3) ensure $NOSE_DIR exists
ssh -o ControlPath="$SOCK" "$HOST" "mkdir -p $NOSE_DIR/{www,bin}"
# 4) remote deploy (reuses the connection)
ssh -o ControlPath="$SOCK" "$HOST" "cd $DEST && bun install --frozen-lockfile && sudo systemctl restart nose-pluto.service"
# 5) close the master connection
ssh -O exit -o ControlPath="$SOCK" "$HOST"