From 4b94173ae533d71c828247b609af6b616ca32a49 Mon Sep 17 00:00:00 2001 From: Joe Tretter Date: Fri, 26 Jun 2026 16:24:45 -0500 Subject: [PATCH] Add low-output tooling mode --- AndroidProjectTooling.sh | 65 ++++++- README.md | 8 + app/build.gradle.kts | 4 +- .../GitRepositoryRuntimeInstrumentedTest.kt | 24 +++ .../githugandroid/GitMessageEditorDialog.kt | 173 ------------------ .../tretter/githugandroid/TextEditorDialog.kt | 157 ++++++++++++---- 6 files changed, 224 insertions(+), 207 deletions(-) delete mode 100644 app/src/main/java/solutions/tretter/githugandroid/GitMessageEditorDialog.kt diff --git a/AndroidProjectTooling.sh b/AndroidProjectTooling.sh index 9571983..673a701 100755 --- a/AndroidProjectTooling.sh +++ b/AndroidProjectTooling.sh @@ -37,11 +37,66 @@ ANDROID_CMAKE_DIR="$SDK_DIR/cmake/3.22.1" ANDROID_TOOLBIN="$ANDROID_NDK_DIR/toolchains/llvm/prebuilt/linux-x86_64/bin" STATE_TTL_SECONDS=86400 HIDE_EMULATOR_WINDOW="false" +QUIET_LOG_DIR="$PROJECT_DIR/build/reports/android-project-tooling" log() { printf '\n[%s] %s\n' "tooling" "$1" } +quiet_log_name() { + local mode="setup" + local arg + for arg in "$@"; do + case "$arg" in + --build|--build-release-aab|--test|--clean-test|--test-emulator|--compile-git) + mode="${arg#--}" + ;; + esac + done + printf '%s-%s.log\n' "$(date +%Y%m%d-%H%M%S)" "$mode" +} + +run_quiet_if_requested() { + if [ "${ANDROID_PROJECT_TOOLING_QUIET_CHILD:-}" = "1" ]; then + return + fi + + local quiet="false" + local filtered_args=() + local arg + for arg in "$@"; do + if [ "$arg" = "--quiet" ]; then + quiet="true" + else + filtered_args+=("$arg") + fi + done + + if [ "$quiet" != "true" ]; then + return + fi + + mkdir -p "$QUIET_LOG_DIR" + local log_file="$QUIET_LOG_DIR/$(quiet_log_name "${filtered_args[@]}")" + printf '[tooling] Running quietly; full log: %s\n' "${log_file#$PROJECT_DIR/}" + + set +e + ANDROID_PROJECT_TOOLING_QUIET_CHILD=1 bash "$0" "${filtered_args[@]}" >"$log_file" 2>&1 & + local child_pid=$! + wait "$child_pid" + local status=$? + set -e + + if [ "$status" -eq 0 ]; then + printf '[tooling] Completed successfully; full log: %s\n' "${log_file#$PROJECT_DIR/}" + else + printf '[tooling] Failed with exit code %s; full log: %s\n' "$status" "${log_file#$PROJECT_DIR/}" >&2 + printf '[tooling] Last 120 log lines:\n' >&2 + tail -n 120 "$log_file" >&2 || true + fi + exit "$status" +} + require_tool() { if ! command -v "$1" >/dev/null 2>&1; then echo "Missing required tool: $1" >&2 @@ -795,7 +850,7 @@ maybe_run_operation() { print_usage() { cat <