summaryrefslogtreecommitdiffhomepage
path: root/bin/build
blob: c13ee53fa34a74c26ece4d62699e3a6920783fc5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/bin/env bash
set -euo pipefail

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"

# Default SD card Windows drive letter and WSL mount point
SD_DRIVE_LETTER="F"
SD_MOUNT="/mnt/f"

# Allow override via argument
if [ "${1:-}" != "" ]; then
  SD_MOUNT="$1"
fi

SD_TARGET="${SD_MOUNT}/speedsync"
MOUNT_STATE_FILE="${PROJECT_DIR}/.sd-mount"

cd "$PROJECT_DIR"

echo "Building SpeedSync..."
npm run build
echo ""
echo "Build complete: dist/"
echo ""

# Mount the SD card if not already mounted
if ! mountpoint -q "$SD_MOUNT" 2>/dev/null; then
  echo "SD card not mounted at $SD_MOUNT, mounting..."
  sudo mkdir -p "$SD_MOUNT"
  sudo mount -t drvfs "${SD_DRIVE_LETTER}:" "$SD_MOUNT" -o "uid=$(id -u),gid=$(id -g)"
  echo "Mounted ${SD_DRIVE_LETTER}: at $SD_MOUNT"
fi

# Record the mount point so bin/unmount knows what to unmount
echo "$SD_MOUNT" > "$MOUNT_STATE_FILE"

echo "Deploying to $SD_TARGET ..."
mkdir -p "$SD_TARGET"
rsync -av --delete dist/ "$SD_TARGET/"
echo ""
echo "Deployed to $SD_TARGET"
echo ""
echo "Run 'bin/unmount' when ready to remove the SD card."