mirror of
https://github.com/tw93/Mole.git
synced 2026-02-04 15:04:42 +00:00
fix: handle dotfiles in Trash cleanup (#395)
Replace glob pattern with find command to properly clean dotfiles in Trash when osascript fallback is used. The old pattern ~/.Trash/* does not match files starting with "." in bash. This fix ensures that hidden files like .DS_Store, .hidden_file, etc. are properly removed when cleaning the Trash.
This commit is contained in:
@@ -150,4 +150,3 @@ func TestLargeFileHeap(t *testing.T) {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,9 @@ clean_user_essentials() {
|
|||||||
echo -e " ${GREEN}${ICON_SUCCESS}${NC} Trash · emptied, $trash_count items"
|
echo -e " ${GREEN}${ICON_SUCCESS}${NC} Trash · emptied, $trash_count items"
|
||||||
note_activity
|
note_activity
|
||||||
else
|
else
|
||||||
safe_clean ~/.Trash/* "Trash"
|
while IFS= read -r -d '' item; do
|
||||||
|
safe_remove "$item" true || true
|
||||||
|
done < <(command find "$HOME/.Trash" -mindepth 1 -maxdepth 1 -print0 2> /dev/null || true)
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo -e " ${GRAY}${ICON_EMPTY}${NC} Trash · already empty"
|
echo -e " ${GRAY}${ICON_EMPTY}${NC} Trash · already empty"
|
||||||
|
|||||||
@@ -103,8 +103,6 @@ EOF
|
|||||||
[ "$status" -eq 0 ]
|
[ "$status" -eq 0 ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@test "clean_browsers calls expected cache paths" {
|
@test "clean_browsers calls expected cache paths" {
|
||||||
run env HOME="$HOME" PROJECT_ROOT="$PROJECT_ROOT" bash --noprofile --norc <<'EOF'
|
run env HOME="$HOME" PROJECT_ROOT="$PROJECT_ROOT" bash --noprofile --norc <<'EOF'
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
@@ -145,3 +143,29 @@ EOF
|
|||||||
[ "$status" -eq 0 ]
|
[ "$status" -eq 0 ]
|
||||||
[[ -z "$output" ]]
|
[[ -z "$output" ]]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test "clean_user_essentials includes dotfiles in Trash cleanup" {
|
||||||
|
mkdir -p "$HOME/.Trash"
|
||||||
|
touch "$HOME/.Trash/.hidden_file"
|
||||||
|
touch "$HOME/.Trash/.DS_Store"
|
||||||
|
touch "$HOME/.Trash/regular_file.txt"
|
||||||
|
mkdir -p "$HOME/.Trash/.hidden_dir"
|
||||||
|
mkdir -p "$HOME/.Trash/regular_dir"
|
||||||
|
|
||||||
|
run bash <<'EOF'
|
||||||
|
set -euo pipefail
|
||||||
|
count=0
|
||||||
|
while IFS= read -r -d '' item; do
|
||||||
|
((count++)) || true
|
||||||
|
echo "FOUND: $(basename "$item")"
|
||||||
|
done < <(command find "$HOME/.Trash" -mindepth 1 -maxdepth 1 -print0 2> /dev/null || true)
|
||||||
|
echo "COUNT: $count"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
[[ "$output" == *"COUNT: 5"* ]]
|
||||||
|
[[ "$output" == *"FOUND: .hidden_file"* ]]
|
||||||
|
[[ "$output" == *"FOUND: .DS_Store"* ]]
|
||||||
|
[[ "$output" == *"FOUND: .hidden_dir"* ]]
|
||||||
|
[[ "$output" == *"FOUND: regular_file.txt"* ]]
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user