From 53f7a97ee5ca0a235badeed35d10fda814c5cf90 Mon Sep 17 00:00:00 2001 From: Ark74 Date: Tue, 6 Jan 2026 06:08:23 -0600 Subject: [PATCH] improve args handeling and logs --- android/termux-setup/60_mod_ppk_checks.sh | 5 ++- android/termux-setup/99_main.sh | 39 ++++++++++++++++++++--- 2 files changed, 38 insertions(+), 6 deletions(-) diff --git a/android/termux-setup/60_mod_ppk_checks.sh b/android/termux-setup/60_mod_ppk_checks.sh index ad7e4c1..6baf6fc 100644 --- a/android/termux-setup/60_mod_ppk_checks.sh +++ b/android/termux-setup/60_mod_ppk_checks.sh @@ -185,5 +185,8 @@ self_check_android_flags() { fi fi - log " Tip: run --check for full details." + # Avoid redundant tip when we're already in --check mode. + if [[ "${MODE:-}" != "check" && "${MODE:-}" != "all" ]]; then + log " Tip: run --check for full details." + fi } diff --git a/android/termux-setup/99_main.sh b/android/termux-setup/99_main.sh index 41e51b8..9eb644a 100644 --- a/android/termux-setup/99_main.sh +++ b/android/termux-setup/99_main.sh @@ -26,6 +26,7 @@ CHECK_PPK="" # Modes are mutually exclusive (baseline is default) MODE="baseline" # baseline|with-adb|adb-only|connect-only|ppk-only|check|all MODE_SET=0 +CONNECT_PORT_FROM="" # "", "flag", "positional" usage() { cat <<'EOF' @@ -93,10 +94,11 @@ self_check() { log " adb: present" adb devices -l 2>/dev/null | sed 's/^/ /' || true local serial - if serial="$(adb_pick_loopback_serial 2>/dev/null)"; then - log " adb shell id (first device):" - adb -s "$serial" shell id 2>/dev/null | sed 's/^/ /' || true - fi +# renable in need for verbose output. +# if serial="$(adb_pick_loopback_serial 2>/dev/null)"; then +# log " adb shell id (first device):" +# adb -s "$serial" shell id 2>/dev/null | sed 's/^/ /' || true +# fi else warn " adb: not present" fi @@ -227,7 +229,10 @@ while [[ $# -gt 0 ]]; do ONLY_CONNECT=1 # Optional positional port (5 digits) if [[ "${2:-}" =~ ^[0-9]{5}$ ]]; then + [[ -n "${CONNECT_PORT_FROM:-}" && "${CONNECT_PORT_FROM}" != "positional" ]] && \ + die "CONNECT PORT specified twice (positional + --connect-port). Use only one." CONNECT_PORT="$2" + CONNECT_PORT_FROM="positional" shift 2 else shift @@ -236,7 +241,13 @@ while [[ $# -gt 0 ]]; do --ppk-only) set_mode "ppk-only"; shift ;; --check) set_mode "check"; shift ;; --all) set_mode "all"; shift ;; - --connect-port) CONNECT_PORT="${2:-}"; shift 2 ;; + --connect-port) + [[ -n "${CONNECT_PORT_FROM:-}" && "${CONNECT_PORT_FROM}" != "flag" ]] && \ + die "CONNECT PORT specified twice (positional + --connect-port). Use only one." + CONNECT_PORT="${2:-}" + CONNECT_PORT_FROM="flag" + shift 2 + ;; --timeout) TIMEOUT_SECS="${2:-180}"; shift 2 ;; --host) HOST="${2:-127.0.0.1}"; shift 2 ;; --reset-debian|--clean-debian) RESET_DEBIAN=1; shift ;; @@ -248,11 +259,29 @@ while [[ $# -gt 0 ]]; do esac done +validate_args() { + if [[ -n "${CONNECT_PORT:-}" ]]; then + CONNECT_PORT="${CONNECT_PORT//[[:space:]]/}" + [[ "$CONNECT_PORT" =~ ^[0-9]{5}$ ]] || die "Invalid --connect-port (must be 5 digits): '$CONNECT_PORT'" + case "$MODE" in + adb-only|with-adb|connect-only|ppk-only|check|all) : ;; + baseline) + log "--connect-port requires an ADB mode." + die "Use along with: --adb-only / --with-adb / --connect-only / --check / --ppk-only / --all" + ;; + *) + die "--connect-port is not valid with mode=$MODE" + ;; + esac + fi +} + # ------------------------- # Main flows # ------------------------- main() { setup_logging "$@" + validate_args sanitize_timeout acquire_wakelock