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:
@@ -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
|
||||||
|
|||||||
@@ -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=(
|
||||||
|
|||||||
@@ -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 ]
|
||||||
|
}
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
dependency
|
|
||||||
@@ -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
|
|
||||||
@@ -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"* ]]
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user