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 <noreply@anthropic.com>
This commit is contained in:
zhukang
2026-03-10 21:56:53 +08:00
parent ee854d85dc
commit 3a62db7d74
2 changed files with 14 additions and 4 deletions

View File

@@ -26,7 +26,8 @@ DRY_RUN=false
PROTECT_FINDER_METADATA=false PROTECT_FINDER_METADATA=false
IS_M_SERIES=$([[ "$(uname -m)" == "arm64" ]] && echo "true" || echo "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="" CURRENT_SECTION=""
readonly PROTECTED_SW_DOMAINS=( readonly PROTECTED_SW_DOMAINS=(
"capcut.com" "capcut.com"
@@ -652,6 +653,9 @@ safe_clean() {
} }
echo "$(dirname "$path")|$size|$path" >> "$paths_temp" 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)) idx=$((idx + 1))
done done
fi fi
@@ -722,6 +726,10 @@ start_cleanup() {
echo "" echo ""
ensure_user_file "$EXPORT_LIST_FILE" 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 cat > "$EXPORT_LIST_FILE" << EOF
# Mole Cleanup Preview - $(date '+%Y-%m-%d %H:%M:%S') # Mole Cleanup Preview - $(date '+%Y-%m-%d %H:%M:%S')
# #

View File

@@ -21,9 +21,11 @@ fi
# Logging Configuration # Logging Configuration
# ============================================================================ # ============================================================================
readonly LOG_FILE="${HOME}/.config/mole/mole.log" readonly MOLE_STATE_DIR="${MOLE_STATE_DIR:-${HOME}/.config/mole}"
readonly DEBUG_LOG_FILE="${HOME}/.config/mole/mole_debug_session.log"
readonly OPERATIONS_LOG_FILE="${HOME}/.config/mole/operations.log" 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 LOG_MAX_SIZE_DEFAULT=1048576 # 1MB
readonly OPLOG_MAX_SIZE_DEFAULT=5242880 # 5MB readonly OPLOG_MAX_SIZE_DEFAULT=5242880 # 5MB