Files
wenil d8cb0dc06d Initial commit: Busbar Designer
Web tool for designing nickel/copper busbars over cylindrical-cell battery
packs (21700, 18650) in hex holders. Flask + build123d backend exports
STEP/DXF/SVG; vanilla JS frontend with live preview, multi-project SQLite
persistence, snapshot history.

Deploy scripts in deploy/ (proxmox-lxc.sh, install.sh, update.sh).
2026-05-24 18:59:50 +03:00

46 lines
1.4 KiB
Bash

#!/usr/bin/env bash
# update.sh — pull the latest from the configured branch, refresh deps, restart.
#
# Optional env (override defaults set at install time):
# INSTALL_DIR default /opt/busbar-designer
# SVC_USER default busbar
# BRANCH default main (or whatever the local checkout tracks)
set -euo pipefail
INSTALL_DIR="${INSTALL_DIR:-/opt/busbar-designer}"
SVC_USER="${SVC_USER:-busbar}"
BRANCH="${BRANCH:-}"
GREEN='\033[0;32m'; RED='\033[0;31m'; NC='\033[0m'
log() { echo -e "${GREEN}${NC} $*"; }
die() { echo -e "${RED}$*${NC}" >&2; exit 1; }
[[ $EUID -eq 0 ]] || die "Run as root."
[[ -d "$INSTALL_DIR/.git" ]] || die "$INSTALL_DIR is not a git checkout."
cd "$INSTALL_DIR"
# Use the branch the working copy tracks if not overridden.
if [[ -z "$BRANCH" ]]; then
BRANCH=$(sudo -u "$SVC_USER" git -C "$INSTALL_DIR" rev-parse --abbrev-ref HEAD)
fi
log "Pulling origin/$BRANCH..."
sudo -u "$SVC_USER" git -C "$INSTALL_DIR" fetch --depth 1 origin "$BRANCH"
sudo -u "$SVC_USER" git -C "$INSTALL_DIR" reset --hard "origin/$BRANCH"
log "Refreshing Python deps..."
sudo -u "$SVC_USER" "$INSTALL_DIR/.venv/bin/pip" install --quiet --upgrade \
-r "$INSTALL_DIR/requirements.txt" gunicorn
log "Restarting busbar-designer..."
systemctl restart busbar-designer
sleep 2
if systemctl is-active --quiet busbar-designer; then
log "✓ Updated and restarted."
else
die "Service failed after restart. journalctl -u busbar-designer -n 50"
fi