From 62d56ef3d6e76d7cb5073eca6ed6cda10f9aa0fb Mon Sep 17 00:00:00 2001 From: achmad Date: Wed, 6 May 2026 14:51:53 +0700 Subject: [PATCH] chore: update dev script and add ADB download helper dev.sh now runs preflight checks (build backend, build desktop, wails generate module, npm install + tsc) before starting wails dev, so type errors and binding mismatches surface immediately. Adds download-adb.sh for fetching platform ADB binaries to embed in distribution builds. --- scripts/dev.sh | 43 ++++++++++++++++++++----------- scripts/download-adb.sh | 56 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+), 14 deletions(-) create mode 100755 scripts/download-adb.sh diff --git a/scripts/dev.sh b/scripts/dev.sh index 9608471..c1728e6 100755 --- a/scripts/dev.sh +++ b/scripts/dev.sh @@ -2,20 +2,35 @@ set -e ROOT="$(cd "$(dirname "$0")/.." && pwd)" - -echo "[DroidScope] Starting dev environment..." - -cd "$ROOT/frontend-react" -npm run dev & -FRONTEND_PID=$! - -cd "$ROOT/desktop" export PATH="$PATH:$(go env GOPATH)/bin" -wails dev & -WAILS_PID=$! -echo "[DroidScope] Frontend PID: $FRONTEND_PID" -echo "[DroidScope] Wails PID: $WAILS_PID" +# ── 1. Build backend-go ──────────────────────────────────────────────────────── +echo "[1/4] Building backend-go..." +cd "$ROOT/backend-go" +go build ./... +echo " ✓ backend-go" -trap "kill $FRONTEND_PID $WAILS_PID 2>/dev/null; exit 0" INT TERM -wait +# ── 2. Build desktop (Go) ────────────────────────────────────────────────────── +echo "[2/4] Building desktop..." +cd "$ROOT/desktop" +go build ./... +echo " ✓ desktop" + +# ── 3. Regenerate Wails JS bindings ─────────────────────────────────────────── +echo "[3/4] Regenerating Wails bindings..." +cd "$ROOT/desktop" +wails generate module +echo " ✓ wailsjs" + +# ── 4. Install & type-check frontend ────────────────────────────────────────── +echo "[4/4] Checking frontend..." +cd "$ROOT/frontend-react" +npm install --silent +npx tsc -b --noEmit +echo " ✓ frontend" + +# ── Start dev ───────────────────────────────────────────────────────────────── +echo "" +echo "Starting Wails dev server..." +cd "$ROOT/desktop" +wails dev diff --git a/scripts/download-adb.sh b/scripts/download-adb.sh new file mode 100755 index 0000000..81b4e3a --- /dev/null +++ b/scripts/download-adb.sh @@ -0,0 +1,56 @@ +#!/usr/bin/env bash +# Downloads ADB binaries for all platforms into desktop/internal/adbembed/bin/ +# Run once before building for distribution. +set -e + +ROOT="$(cd "$(dirname "$0")/.." && pwd)" +BIN_DIR="$ROOT/desktop/internal/adbembed/bin" +TMP=$(mktemp -d) + +echo "[DroidScope] Downloading platform-tools..." + +download_and_extract() { + local os=$1 + local url=$2 + local src_name=$3 + local dest_name=$4 + + echo " → $os" + if [[ "$url" == *.zip ]]; then + curl -fsSL "$url" -o "$TMP/${os}.zip" + unzip -q "$TMP/${os}.zip" "platform-tools/$src_name" -d "$TMP/${os}/" + else + curl -fsSL "$url" -o "$TMP/${os}.tar.gz" + tar -xzf "$TMP/${os}.tar.gz" -C "$TMP/${os}/" "platform-tools/$src_name" 2>/dev/null || \ + tar -xzf "$TMP/${os}.tar.gz" -C "$TMP/${os}/" + fi + + cp "$TMP/${os}/platform-tools/$src_name" "$BIN_DIR/$dest_name" + chmod +x "$BIN_DIR/$dest_name" +} + +mkdir -p "$TMP/darwin" "$TMP/linux" "$TMP/windows" + +download_and_extract \ + darwin \ + "https://dl.google.com/android/repository/platform-tools-latest-darwin.zip" \ + "adb" \ + "adb-darwin-arm64" + +cp "$BIN_DIR/adb-darwin-arm64" "$BIN_DIR/adb-darwin-amd64" + +download_and_extract \ + linux \ + "https://dl.google.com/android/repository/platform-tools-latest-linux.zip" \ + "adb" \ + "adb-linux-amd64" + +download_and_extract \ + windows \ + "https://dl.google.com/android/repository/platform-tools-latest-windows.zip" \ + "adb.exe" \ + "adb-windows-amd64.exe" + +rm -rf "$TMP" +echo "[DroidScope] ADB binaries downloaded to $BIN_DIR" +ls -lh "$BIN_DIR"