aboutsummarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorYash Karandikar2021-09-25 17:38:24 -0500
committerYash Karandikar2021-09-25 17:38:24 -0500
commitdee21ac4fff498bc710b5d54fa1921501c30a24e (patch)
treeb3237114de3a9e333517e6f36b12b162323e39e6
parent07c2513a3e047b860b5ee9f1b63b886bc81412b2 (diff)
downloadaur-dee21ac4fff498bc710b5d54fa1921501c30a24e.tar.gz
Remove any directories that don't correspond to an installed package
-rwxr-xr-xhaur15
1 files changed, 14 insertions, 1 deletions
diff --git a/haur b/haur
index 96c1564dc702..cb2613f30a18 100755
--- a/haur
+++ b/haur
@@ -133,6 +133,7 @@ else
fi
if [[ $CLEAR_CACHE == true ]]; then
+ REMOVED=false
if test -f "$HOME/.haur_cache"; then
echo "${blue}Clearing cache...${normal}"
while IFS= read -r line || [[ -n "$line" ]]; do
@@ -140,7 +141,19 @@ if [[ $CLEAR_CACHE == true ]]; then
rm -rf "$HOME/.haur/$line"
done < "$HOME/.haur_cache"
rm ~/.haur_cache
- else
+ REMOVED=true
+ fi
+
+ dirs=()
+ while IFS= read -r -d '' dir; do
+ dirs+=($(basename "${dir#*/}"))
+ done < <(find ~/.haur -maxdepth 1 -mindepth 1 -type d -print0)
+
+ for DIRECTORY in "${dirs[@]}"; do
+ pacman -Q $DIRECTORY &>/dev/null || echo "${blue}Removing $DIRECTORY${normal}" && rm -rf "$HOME/.haur/$DIRECTORY" && REMOVED=true
+ done
+
+ if [[ $REMOVED == false ]]; then
echo "${blue}Nothing to clear${normal}"
fi
fi \ No newline at end of file