CSS animations for smoother 60fps feel despite 7Hz game ticks: - 130ms transitions on cell background/box-shadow - Head pop-in animation on direction changes - Food pulse animation - Smooth death state fade with grayscale Per-snake colored glow on head cells. Make server port configurable via PORT env var (default 8080). Add deploy/ with systemd service and scripts: - setup.sh: create games user, /opt/c4, install unit - deploy.sh: build and install binary, restart service - package.sh: cross-compile, tarball, base64 split for transfer - reassemble.sh: decode and extract on target server
32 lines
914 B
Bash
Executable File
32 lines
914 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# Deploy the c4 binary to /opt/c4, then restart the service.
|
|
# Works from the repo (builds first) or from an extracted tarball (pre-built binary).
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
|
|
INSTALL_DIR="/opt/c4"
|
|
BINARY="$ROOT_DIR/c4"
|
|
|
|
# If Go is available and we have source, build fresh
|
|
if [[ -f "$ROOT_DIR/go.mod" ]] && command -v go &>/dev/null; then
|
|
echo "Building CSS..."
|
|
(cd "$ROOT_DIR" && go tool gotailwind -i assets/css/input.css -o assets/css/output.css --minify)
|
|
|
|
echo "Building binary..."
|
|
(cd "$ROOT_DIR" && CGO_ENABLED=0 go build -o c4 .)
|
|
fi
|
|
|
|
if [[ ! -f "$BINARY" ]]; then
|
|
echo "ERROR: Binary not found at $BINARY" >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "Installing to $INSTALL_DIR..."
|
|
install -o games -g games -m 755 "$BINARY" "$INSTALL_DIR/c4"
|
|
|
|
echo "Restarting service..."
|
|
systemctl restart c4.service
|
|
|
|
echo "Done. Status:"
|
|
systemctl status c4.service --no-pager
|