chore: init clean tree
This commit is contained in:
53
install.sh
Executable file
53
install.sh
Executable file
@@ -0,0 +1,53 @@
|
||||
#!/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_VIDEODRIVER=wayland cage -s -- $OUT_BIN'"
|
||||
user = "root"
|
||||
EOF
|
||||
|
||||
log "Done. Restart greetd to apply changes."
|
||||
Reference in New Issue
Block a user