1
0
mirror of https://github.com/tw93/Mole.git synced 2026-02-04 15:39:42 +00:00

feat: implement empty Library directory cleanup and Android NDK version check.

This commit is contained in:
Tw93
2026-01-03 09:41:05 +08:00
parent a0be298bfc
commit f5a8adb97e
6 changed files with 55 additions and 20 deletions

View File

@@ -131,7 +131,23 @@ clean_dev_frontend() {
safe_clean ~/.cache/prettier/* "Prettier cache" safe_clean ~/.cache/prettier/* "Prettier cache"
} }
# Mobile dev caches (can be large). # Mobile dev caches (can be large).
# Check for multiple Android NDK versions.
check_android_ndk() {
local ndk_dir="$HOME/Library/Android/sdk/ndk"
if [[ -d "$ndk_dir" ]]; then
local count
count=$(find "$ndk_dir" -mindepth 1 -maxdepth 1 -type d 2> /dev/null | wc -l | tr -d ' ')
if [[ "$count" -gt 1 ]]; then
note_activity
echo -e " Found ${GREEN}${count}${NC} Android NDK versions"
echo -e " You can delete unused versions manually: ${ndk_dir}"
fi
fi
}
clean_dev_mobile() { clean_dev_mobile() {
check_android_ndk
if command -v xcrun > /dev/null 2>&1; then if command -v xcrun > /dev/null 2>&1; then
debug_log "Checking for unavailable Xcode simulators" debug_log "Checking for unavailable Xcode simulators"
if [[ "$DRY_RUN" == "true" ]]; then if [[ "$DRY_RUN" == "true" ]]; then

View File

@@ -5,6 +5,9 @@ clean_user_essentials() {
start_section_spinner "Scanning caches..." start_section_spinner "Scanning caches..."
safe_clean ~/Library/Caches/* "User app cache" safe_clean ~/Library/Caches/* "User app cache"
stop_section_spinner stop_section_spinner
start_section_spinner "Scanning empty items..."
clean_empty_library_items
stop_section_spinner
safe_clean ~/Library/Logs/* "User app logs" safe_clean ~/Library/Logs/* "User app logs"
if is_path_whitelisted "$HOME/.Trash"; then if is_path_whitelisted "$HOME/.Trash"; then
note_activity note_activity
@@ -14,6 +17,19 @@ clean_user_essentials() {
fi fi
} }
clean_empty_library_items() {
local -a empty_dirs=()
while IFS= read -r -d '' dir; do
[[ -d "$dir" ]] && empty_dirs+=("$dir")
done < <(find "$HOME/Library" -mindepth 1 -maxdepth 1 -type d -empty -print0 2> /dev/null)
if [[ ${#empty_dirs[@]} -gt 0 ]]; then
safe_clean "${empty_dirs[@]}" "Empty Library folders"
fi
# Empty file cleanup is skipped to avoid removing app sentinel files.
}
# Remove old Google Chrome versions while keeping Current. # Remove old Google Chrome versions while keeping Current.
clean_chrome_old_versions() { clean_chrome_old_versions() {
local -a app_paths=( local -a app_paths=(

View File

@@ -71,3 +71,10 @@ setup() {
run bash -c "grep -q 'write_raycast_script' '$PROJECT_ROOT/scripts/setup-quick-launchers.sh'" run bash -c "grep -q 'write_raycast_script' '$PROJECT_ROOT/scripts/setup-quick-launchers.sh'"
[ "$status" -eq 0 ] [ "$status" -eq 0 ]
} }
@test "install.sh supports dev branch installs" {
run bash -c "grep -q 'refs/heads/dev.tar.gz' '$PROJECT_ROOT/install.sh'"
[ "$status" -eq 0 ]
run bash -c "grep -q 'MOLE_VERSION=\"dev\"' '$PROJECT_ROOT/install.sh'"
[ "$status" -eq 0 ]
}

View File

@@ -1,19 +0,0 @@
#!/bin/bash
if [[ "$1" == "status" ]]; then
cat << 'TMUTIL_OUTPUT'
Backup session status:
{
ClientID = "com.apple.backupd";
Running = 1;
}
TMUTIL_OUTPUT
elif [[ "$1" == "destinationinfo" ]]; then
cat << 'DEST_OUTPUT'
====================================================
Name : TestBackup
Kind : Local
Mount Point : /Volumes/TestBackup
ID : 12345678-1234-1234-1234-123456789012
====================================================
DEST_OUTPUT
fi

View File

@@ -102,3 +102,19 @@ EOF
[ "$status" -eq 0 ] [ "$status" -eq 0 ]
} }
@test "clean_empty_library_items only cleans empty dirs" {
run env HOME="$HOME" PROJECT_ROOT="$PROJECT_ROOT" /bin/bash --noprofile --norc <<'EOF'
set -euo pipefail
source "$PROJECT_ROOT/lib/core/common.sh"
source "$PROJECT_ROOT/lib/clean/user.sh"
safe_clean() { echo "$2"; }
mkdir -p "$HOME/Library/EmptyDir"
touch "$HOME/Library/empty.txt"
clean_empty_library_items
EOF
[ "$status" -eq 0 ]
[[ "$output" == *"Empty Library folders"* ]]
[[ "$output" != *"Empty Library files"* ]]
}