From e7fd73302d8ee60ecb20860e36f00a119dedb08f Mon Sep 17 00:00:00 2001 From: Tw93 Date: Sat, 6 Dec 2025 21:12:02 +0800 Subject: [PATCH] More thoughtful consideration --- bin/clean.sh | 1 - lib/clean/system.sh | 10 +++++----- lib/clean/user.sh | 6 +++--- lib/core/common.sh | 25 ++++++++++++++----------- 4 files changed, 22 insertions(+), 20 deletions(-) diff --git a/bin/clean.sh b/bin/clean.sh index 592e3df..95b5d14 100755 --- a/bin/clean.sh +++ b/bin/clean.sh @@ -868,7 +868,6 @@ perform_cleanup() { clean_time_machine_failed_backups end_section - # ===== Final summary ===== echo "" diff --git a/lib/clean/system.sh b/lib/clean/system.sh index a250554..bad8462 100644 --- a/lib/clean/system.sh +++ b/lib/clean/system.sh @@ -60,15 +60,15 @@ clean_deep_system() { if [[ -d "/macOS Install Data" ]]; then local mtime=$(get_file_mtime "/macOS Install Data") local age_days=$((($(date +%s) - mtime) / 86400)) - + debug_log "Found macOS Install Data (age: ${age_days} days)" - + if [[ $age_days -ge 30 ]]; then local size_kb=$(get_path_size_kb "/macOS Install Data") if [[ -n "$size_kb" && "$size_kb" -gt 0 ]]; then local size_human=$(bytes_to_human "$((size_kb * 1024))") debug_log "Cleaning macOS Install Data: $size_human (${age_days} days old)" - + if safe_sudo_remove "/macOS Install Data"; then log_success "macOS Install Data ($size_human)" fi @@ -86,8 +86,8 @@ clean_deep_system() { if safe_remove "$cache_dir" true; then ((code_sign_cleaned++)) fi - done < <(find /private/var/folders -type d -name "*.code_sign_clone" -path "*/X/*" -print0 2>/dev/null || true) - + done < <(find /private/var/folders -type d -name "*.code_sign_clone" -path "*/X/*" -print0 2> /dev/null || true) + [[ $code_sign_cleaned -gt 0 ]] && log_success "Browser code signature caches ($code_sign_cleaned items)" # Clean system diagnostics logs diff --git a/lib/clean/user.sh b/lib/clean/user.sh index c32e051..614b8c4 100644 --- a/lib/clean/user.sh +++ b/lib/clean/user.sh @@ -205,12 +205,12 @@ clean_application_support_logs() { # Direct path access is fast and won't cause performance issues # Add new containers here as users report them local known_group_containers=( - "group.com.apple.contentdelivery" # Issue #104: Can accumulate 4GB+ in Library/Logs/Transporter + "group.com.apple.contentdelivery" # Issue #104: Can accumulate 4GB+ in Library/Logs/Transporter ) - + for container in "${known_group_containers[@]}"; do local container_path="$HOME/Library/Group Containers/$container" - + # Check both direct Logs and Library/Logs patterns if [[ -d "$container_path/Logs" ]]; then debug_log "Scanning Group Container: $container/Logs" diff --git a/lib/core/common.sh b/lib/core/common.sh index 8ca40c1..c8bedf0 100755 --- a/lib/core/common.sh +++ b/lib/core/common.sh @@ -38,12 +38,12 @@ readonly ICON_NAV_LEFT="←" readonly ICON_NAV_RIGHT="→" # Global configuration constants -readonly MOLE_TEMP_FILE_AGE_DAYS=0 # Temp file cleanup threshold (0 = all) +readonly MOLE_TEMP_FILE_AGE_DAYS=7 # Temp file cleanup threshold readonly MOLE_ORPHAN_AGE_DAYS=60 # Orphaned data threshold readonly MOLE_MAX_PARALLEL_JOBS=15 # Parallel job limit readonly MOLE_MAIL_DOWNLOADS_MIN_KB=5120 # Mail attachments size threshold (~5MB) -readonly MOLE_LOG_AGE_DAYS=0 # System log retention (0 = all) -readonly MOLE_CRASH_REPORT_AGE_DAYS=0 # Crash report retention (0 = all) +readonly MOLE_LOG_AGE_DAYS=7 # System log retention +readonly MOLE_CRASH_REPORT_AGE_DAYS=7 # Crash report retention readonly MOLE_SAVED_STATE_AGE_DAYS=7 # App saved state retention readonly MOLE_TM_BACKUP_SAFE_HOURS=48 # Time Machine failed backup safety window @@ -248,19 +248,19 @@ safe_find_delete() { return 1 fi - # Execute find with safety limits + # Execute find with safety limits (maxdepth 5 covers most app cache structures) debug_log "Finding in $base_dir: $pattern (age: ${age_days}d, type: $type_filter)" # When age_days is 0, delete all matching files without time restriction if [[ "$age_days" -eq 0 ]]; then command find "$base_dir" \ - -maxdepth 3 \ + -maxdepth 5 \ -name "$pattern" \ -type "$type_filter" \ -delete 2> /dev/null || true else command find "$base_dir" \ - -maxdepth 3 \ + -maxdepth 5 \ -name "$pattern" \ -type "$type_filter" \ -mtime "+$age_days" \ @@ -295,19 +295,19 @@ safe_sudo_find_delete() { return 1 fi - # Execute find with safety limits + # Execute find with safety limits (maxdepth 5 covers most app cache structures) debug_log "Finding (sudo) in $base_dir: $pattern (age: ${age_days}d, type: $type_filter)" # When age_days is 0, delete all matching files without time restriction if [[ "$age_days" -eq 0 ]]; then sudo command find "$base_dir" \ - -maxdepth 3 \ + -maxdepth 5 \ -name "$pattern" \ -type "$type_filter" \ -delete 2> /dev/null || true else sudo command find "$base_dir" \ - -maxdepth 3 \ + -maxdepth 5 \ -name "$pattern" \ -type "$type_filter" \ -mtime "+$age_days" \ @@ -587,7 +587,10 @@ run_with_timeout() { "$@" & local cmd_pid=$! - (sleep "$duration"; kill -TERM "$cmd_pid" 2> /dev/null || true) & + ( + sleep "$duration" + kill -TERM "$cmd_pid" 2> /dev/null || true + ) & local killer_pid=$! local exit_code @@ -1188,7 +1191,7 @@ clean_tool_cache() { if [[ ${#cache_dirs[@]} -gt 0 ]]; then for dir in "${cache_dirs[@]}"; do if [[ -d "$dir" ]]; then - local dir_size=$(get_path_size_kb "$dir" 2>/dev/null || echo "0") + local dir_size=$(get_path_size_kb "$dir" 2> /dev/null || echo "0") ((size_before += dir_size)) fi done