diff --git a/bin/clean.sh b/bin/clean.sh index edb9676..47cdf52 100755 --- a/bin/clean.sh +++ b/bin/clean.sh @@ -23,25 +23,6 @@ readonly MAX_PARALLEL_JOBS=15 # Maximum parallel background jobs readonly TEMP_FILE_AGE_DAYS=7 # Age threshold for temp file cleanup readonly ORPHAN_AGE_DAYS=60 # Age threshold for orphaned data -# Timeout helper (GNU timeout isn't available on stock macOS) -TIMEOUT_BIN="" -for candidate in gtimeout timeout; do - if command -v "$candidate" > /dev/null 2>&1; then - TIMEOUT_BIN="$candidate" - break - fi -done - -run_with_timeout() { - local duration="$1" - shift - if [[ -n "$TIMEOUT_BIN" ]]; then - "$TIMEOUT_BIN" "$duration" "$@" - else - "$@" - fi -} - # Protected Service Worker domains (web-based editing tools) readonly PROTECTED_SW_DOMAINS=( "capcut.com" diff --git a/mole b/mole index a38a21d..91a2d73 100755 --- a/mole +++ b/mole @@ -22,7 +22,7 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "$SCRIPT_DIR/lib/common.sh" # Version info -VERSION="1.10.12" +VERSION="1.10.13" MOLE_TAGLINE="can dig deep to clean your Mac." # Check if Touch ID is already configured @@ -274,6 +274,21 @@ update_mole() { local install_dir install_dir="$(cd "$(dirname "$mole_path")" && pwd)" + local requires_sudo="false" + if [[ ! -w "$install_dir" ]]; then + requires_sudo="true" + elif [[ -e "$install_dir/mole" && ! -w "$install_dir/mole" ]]; then + requires_sudo="true" + fi + + if [[ "$requires_sudo" == "true" ]]; then + if ! request_sudo_access "Mole update requires admin access"; then + log_error "Update aborted (admin access denied)" + rm -f "$tmp_installer" + exit 1 + fi + fi + if [[ -t 1 ]]; then start_inline_spinner "Installing update..." else