From 7a0b4cf07ef0ca107ef0ee98e3cef62f6269d15d Mon Sep 17 00:00:00 2001 From: Tw93 Date: Sun, 15 Mar 2026 11:38:18 +0800 Subject: [PATCH] fix: move logs to ~/Library/Logs/mole, add system idle assets cleanup - Move log files from ~/.config/mole/ to ~/Library/Logs/mole/ per macOS convention. Fixes #569. - Add safe_sudo_find_delete for /Library/Application Support/ com.apple.idleassetsd/Customer/ screensaver videos. Closes #570. - Update tests to reflect new log file paths. --- lib/clean/user.sh | 6 ++++++ lib/core/log.sh | 6 +++--- tests/cli.bats | 4 ++-- tests/core_common.bats | 6 +++--- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/lib/clean/user.sh b/lib/clean/user.sh index 86fcf07..d992dab 100644 --- a/lib/clean/user.sh +++ b/lib/clean/user.sh @@ -427,6 +427,12 @@ clean_support_app_data() { safe_find_delete "$idle_assets_dir" "*" "$support_age_days" "f" || true fi + # Clean system-level idle/aerial screensaver videos (macOS re-downloads as needed). + local sys_idle_assets_dir="/Library/Application Support/com.apple.idleassetsd/Customer" + if sudo test -d "$sys_idle_assets_dir" 2> /dev/null; then + safe_sudo_find_delete "$sys_idle_assets_dir" "*" "$support_age_days" "f" || true + fi + # Clean old aerial wallpaper videos (can be large, safe to remove). safe_clean ~/Library/Application\ Support/com.apple.wallpaper/aerials/videos/* "Aerial wallpaper videos" diff --git a/lib/core/log.sh b/lib/core/log.sh index 95d92ce..f4c88ea 100644 --- a/lib/core/log.sh +++ b/lib/core/log.sh @@ -21,9 +21,9 @@ fi # Logging Configuration # ============================================================================ -readonly LOG_FILE="${HOME}/.config/mole/mole.log" -readonly DEBUG_LOG_FILE="${HOME}/.config/mole/mole_debug_session.log" -readonly OPERATIONS_LOG_FILE="${HOME}/.config/mole/operations.log" +readonly LOG_FILE="${HOME}/Library/Logs/mole/mole.log" +readonly DEBUG_LOG_FILE="${HOME}/Library/Logs/mole/mole_debug_session.log" +readonly OPERATIONS_LOG_FILE="${HOME}/Library/Logs/mole/operations.log" readonly LOG_MAX_SIZE_DEFAULT=1048576 # 1MB readonly OPLOG_MAX_SIZE_DEFAULT=5242880 # 5MB diff --git a/tests/cli.bats b/tests/cli.bats index 6afc025..ccaa5bd 100644 --- a/tests/cli.bats +++ b/tests/cli.bats @@ -206,7 +206,7 @@ EOF [ "$status" -eq 0 ] MOLE_OUTPUT="$output" - DEBUG_LOG="$HOME/.config/mole/mole_debug_session.log" + DEBUG_LOG="$HOME/Library/Logs/mole/mole_debug_session.log" [ -f "$DEBUG_LOG" ] run grep "Mole Debug Session" "$DEBUG_LOG" @@ -228,7 +228,7 @@ EOF run env HOME="$HOME" TERM="xterm-256color" MOLE_TEST_MODE=1 MO_DEBUG=1 "$PROJECT_ROOT/mole" clean --dry-run [ "$status" -eq 0 ] - DEBUG_LOG="$HOME/.config/mole/mole_debug_session.log" + DEBUG_LOG="$HOME/Library/Logs/mole/mole_debug_session.log" run grep "User:" "$DEBUG_LOG" [ "$status" -eq 0 ] diff --git a/tests/core_common.bats b/tests/core_common.bats index 23afe44..0d63e73 100644 --- a/tests/core_common.bats +++ b/tests/core_common.bats @@ -50,7 +50,7 @@ setup() { stdout_output="$(HOME="$HOME" bash --noprofile --norc -c "source '$PROJECT_ROOT/lib/core/common.sh'; log_info '$message'")" [[ "$stdout_output" == *"$message"* ]] - local log_file="$HOME/.config/mole/mole.log" + local log_file="$HOME/Library/Logs/mole/mole.log" [[ -f "$log_file" ]] grep -q "INFO: $message" "$log_file" } @@ -64,13 +64,13 @@ setup() { [[ -s "$stderr_file" ]] grep -q "$message" "$stderr_file" - local log_file="$HOME/.config/mole/mole.log" + local log_file="$HOME/Library/Logs/mole/mole.log" [[ -f "$log_file" ]] grep -q "ERROR: $message" "$log_file" } @test "rotate_log_once only checks log size once per session" { - local log_file="$HOME/.config/mole/mole.log" + local log_file="$HOME/Library/Logs/mole/mole.log" mkdir -p "$(dirname "$log_file")" dd if=/dev/zero of="$log_file" bs=1024 count=1100 2> /dev/null