From 3a62db7d748b71d4340168619456e36536d53e93 Mon Sep 17 00:00:00 2001 From: zhukang <274546966@qq.com> Date: Tue, 10 Mar 2026 21:56:53 +0800 Subject: [PATCH] refactor(mole): use MOLE_STATE_DIR env var and add detailed export support Make log and export file paths configurable via MOLE_STATE_DIR. Add optional MOLE_DETAILED_EXPORT_FILE for per-item cleanup reporting. Co-Authored-By: Claude Opus 4.6 --- bin/clean.sh | 10 +++++++++- lib/core/log.sh | 8 +++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/bin/clean.sh b/bin/clean.sh index 039fd33..0a3ac5a 100755 --- a/bin/clean.sh +++ b/bin/clean.sh @@ -26,7 +26,8 @@ DRY_RUN=false PROTECT_FINDER_METADATA=false IS_M_SERIES=$([[ "$(uname -m)" == "arm64" ]] && echo "true" || echo "false") -EXPORT_LIST_FILE="$HOME/.config/mole/clean-list.txt" +EXPORT_LIST_FILE="${MOLE_EXPORT_LIST_FILE:-$MOLE_STATE_DIR/clean-list.txt}" +DETAILED_EXPORT_FILE="${MOLE_DETAILED_EXPORT_FILE:-}" CURRENT_SECTION="" readonly PROTECTED_SW_DOMAINS=( "capcut.com" @@ -652,6 +653,9 @@ safe_clean() { } echo "$(dirname "$path")|$size|$path" >> "$paths_temp" + if [[ -n "$DETAILED_EXPORT_FILE" ]]; then + printf "%s\t%s\t%s\n" "$CURRENT_SECTION" "$path" "$size" >> "$DETAILED_EXPORT_FILE" + fi idx=$((idx + 1)) done fi @@ -722,6 +726,10 @@ start_cleanup() { echo "" ensure_user_file "$EXPORT_LIST_FILE" + if [[ -n "$DETAILED_EXPORT_FILE" ]]; then + mkdir -p "$(dirname "$DETAILED_EXPORT_FILE")" + : > "$DETAILED_EXPORT_FILE" + fi cat > "$EXPORT_LIST_FILE" << EOF # Mole Cleanup Preview - $(date '+%Y-%m-%d %H:%M:%S') # diff --git a/lib/core/log.sh b/lib/core/log.sh index 95d92ce..f045160 100644 --- a/lib/core/log.sh +++ b/lib/core/log.sh @@ -21,9 +21,11 @@ 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 MOLE_STATE_DIR="${MOLE_STATE_DIR:-${HOME}/.config/mole}" + +readonly LOG_FILE="${MOLE_STATE_DIR}/mole.log" +readonly DEBUG_LOG_FILE="${MOLE_STATE_DIR}/mole_debug_session.log" +readonly OPERATIONS_LOG_FILE="${MOLE_STATE_DIR}/operations.log" readonly LOG_MAX_SIZE_DEFAULT=1048576 # 1MB readonly OPLOG_MAX_SIZE_DEFAULT=5242880 # 5MB