Files
DEVICE_CONTACT/install-dev.sh
2025-12-18 20:29:45 +02:00

54 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
REPO_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
INSTALL_DIR="/opt/deltabootd_DEVICE_CONTACT"
BIN_NAME="deltarune_device_contact"
OUT_BIN="$INSTALL_DIR/dist/$BIN_NAME"
GREETD_CONFIG="${GREETD_CONFIG:-/etc/greetd/config.toml}"
GREETD_USER="${GREETD_USER:-greeter}"
BACKUP_SUFFIX="$(date +%Y%m%d%H%M%S)"
log() { printf '[install] %s\n' "$*"; }
command -v bun >/dev/null 2>&1 || { echo "bun is required on PATH"; exit 1; }
log "Copying project to $INSTALL_DIR"
sudo mkdir -p "$INSTALL_DIR"
sudo rsync -a --delete \
--exclude node_modules \
--exclude dist \
--exclude .git \
"$REPO_DIR"/ "$INSTALL_DIR"/
log "Installing dependencies in $INSTALL_DIR"
sudo env -C "$INSTALL_DIR" bun install
log "Installing N-API dependencies in $INSTALL_DIR"
sudo env -C "$INSTALL_DIR" bun pm trust --all
log "Building binary -> $OUT_BIN"
sudo env -C "$INSTALL_DIR" bun build --compile --production --outfile="$OUT_BIN" ./src/index.ts
sudo chmod +x "$OUT_BIN"
if [[ -f "$GREETD_CONFIG" ]]; then
log "Backing up greetd config to ${GREETD_CONFIG}.${BACKUP_SUFFIX}.bak"
sudo cp "$GREETD_CONFIG" "${GREETD_CONFIG}.${BACKUP_SUFFIX}.bak"
else
log "greetd config not found, creating $GREETD_CONFIG"
sudo mkdir -p "$(dirname "$GREETD_CONFIG")"
fi
log "Writing greetd config to launch $OUT_BIN as $GREETD_USER"
sudo tee "$GREETD_CONFIG" >/dev/null <<EOF
[terminal]
vt = 1
[default_session]
command = "bash -c 'IS_CAGE=1 SDL_AUDIODRIVER=dummy SDL_VIDEODRIVER=wayland cage -s -- $OUT_BIN --debug --debug-log-file=/deltaboot-debug.txt'"
user = "root"
EOF
log "Done. Restart greetd to apply changes."