Files
buzz/scripts/mobile-worktree-clean.sh
cls 4a79c0072c
Docker image / Build (linux/amd64) (push) Has been cancelled
Docker image / Build (linux/arm64) (push) Has been cancelled
Docker image / Merge release multi-arch manifest (push) Has been cancelled
Docker image / Merge debug multi-arch manifest (push) Has been cancelled
Docker image / Build public push gateway (linux/amd64) (push) Has been cancelled
Docker image / Build public push gateway (linux/arm64) (push) Has been cancelled
Docker image / Publish public push gateway image (push) Has been cancelled
Harbor Buzz Orchestra / Python tests and lint (push) Has been cancelled
CI / Detect Changed Paths (push) Has been cancelled
CI / Rust Lint (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Desktop Core (push) Has been cancelled
CI / Desktop Smoke E2E (1) (push) Has been cancelled
CI / Desktop Smoke E2E (2) (push) Has been cancelled
CI / Desktop Smoke E2E (3) (push) Has been cancelled
CI / Desktop Smoke E2E (4) (push) Has been cancelled
CI / Desktop (push) Has been cancelled
CI / Desktop E2E Relay (push) Has been cancelled
CI / Desktop E2E Integration (1/2) (push) Has been cancelled
CI / Desktop E2E Integration (2/2) (push) Has been cancelled
CI / Desktop E2E Integration (push) Has been cancelled
CI / Backend Integration (relay e2e) (push) Has been cancelled
CI / Relay E2E (push) Has been cancelled
CI / Web (push) Has been cancelled
CI / Mobile (push) Has been cancelled
CI / Security (push) Has been cancelled
CI / Dead Token Reference Guard (push) Has been cancelled
CI / Server Cross-Compile (aarch64-unknown-linux-musl) (push) Has been cancelled
CI / Server Cross-Compile (x86_64-unknown-linux-musl) (push) Has been cancelled
CI / Windows Rust (x86_64-pc-windows-msvc) (push) Has been cancelled
CI / Desktop Build (macOS) (push) Has been cancelled
helm chart / lint + unittest + render matrix (push) Has been cancelled
helm chart / install on kind (gated) (push) Has been cancelled
helm chart / publish chart to GHCR (push) Has been cancelled
Mesh Lifecycle / Relay-Driven Mesh Lifecycle Smoke (push) Has been cancelled
Sprig image / Build (linux/amd64) (push) Has been cancelled
Sprig image / Build (linux/arm64) (push) Has been cancelled
Sprig image / Merge multi-arch manifest (push) Has been cancelled
Sprig / Build (aarch64-unknown-linux-musl) (push) Has been cancelled
Sprig / Build (x86_64-unknown-linux-musl) (push) Has been cancelled
Sprig / Publish rolling release (push) Has been cancelled
Sprig / Publish tagged release (push) Has been cancelled
Import exact Chinese Buzz source tree
Signed-off-by: cls_???? <908705107@qq.com>
2026-08-13 18:38:15 +08:00

67 lines
2.8 KiB
Bash
Executable File

#!/usr/bin/env bash
# Uninstalls stale worktree-suffixed Buzz debug builds from booted iOS
# simulators and connected Android devices/emulators. Production installs
# (com.buzz.buzzMobile / xyz.block.buzz.mobile, no suffix) are never touched:
# only identifiers with a worktree suffix appended after the production id
# are matched. Run `just mobile-clean` (or this script directly); pass
# --dry-run to list what would be removed without uninstalling.
set -euo pipefail
ios_prefix="com.buzz.buzzMobile."
android_prefix="xyz.block.buzz.mobile."
dry_run=0
if [[ "${1:-}" == "--dry-run" ]]; then
dry_run=1
fi
removed=0
# ── iOS: booted simulators only ──────────────────────────────────────────────
if command -v xcrun &>/dev/null; then
booted=$(xcrun simctl list devices booted 2>/dev/null | sed -n 's/.*(\([0-9A-F-]\{36\}\)) (Booted).*/\1/p' || true)
for udid in $booted; do
# `simctl listapps` emits a plist keyed by bundle id; extract keys
# that carry the worktree suffix.
bundles=$(xcrun simctl listapps "$udid" 2>/dev/null \
| plutil -convert json -o - -- - 2>/dev/null \
| python3 -c 'import json,sys; print("\n".join(k for k in json.load(sys.stdin) if k.startswith(sys.argv[1])))' "$ios_prefix" \
|| true)
for bundle in $bundles; do
if [[ "$dry_run" == "1" ]]; then
echo "would uninstall (iOS $udid): $bundle"
else
echo "uninstalling (iOS $udid): $bundle"
xcrun simctl uninstall "$udid" "$bundle"
fi
removed=$((removed + 1))
done
done
fi
# ── Android: all connected devices/emulators ────────────────────────────────
if command -v adb &>/dev/null; then
devices=$(adb devices 2>/dev/null | awk 'NR>1 && $2=="device" {print $1}' || true)
for serial in $devices; do
packages=$(adb -s "$serial" shell pm list packages 2>/dev/null \
| tr -d '\r' | sed -n "s/^package:\(${android_prefix//./\\.}[a-z0-9_]*\)$/\1/p" || true)
for pkg in $packages; do
if [[ "$dry_run" == "1" ]]; then
echo "would uninstall (Android $serial): $pkg"
else
echo "uninstalling (Android $serial): $pkg"
adb -s "$serial" uninstall "$pkg" >/dev/null
fi
removed=$((removed + 1))
done
done
fi
if [[ "$removed" == "0" ]]; then
echo "no worktree-suffixed Buzz installs found (production apps untouched)"
elif [[ "$dry_run" == "1" ]]; then
echo "dry run: $removed worktree install(s) would be removed (production apps untouched)"
else
echo "removed $removed worktree install(s) (production apps untouched)"
fi