9dfa06ffee
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
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
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 / 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
Signed-off-by: cls_宁波本机 <908705107@qq.com>
67 lines
2.8 KiB
Bash
67 lines
2.8 KiB
Bash
#!/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
|