helm/clean
2017-10-06 12:13:19 +02:00

46 lines
800 B
Bash
Executable file

#!/usr/bin/env bash
# A symlink cleanup script.
#
# Usage: clean [-du]
#
# Options:
# -d Do a dry run (only output commands, no changes)
# -u Uninstall all enabled topics
_run() {
if [[ $DRYRUN ]]; then
echo "$@"
else
$@
fi
}
uninstall=
while getopts du opt; do
case $opt in
d) DRYRUN=1 ;;
u) uninstall=1 ;;
*) >&2 echo "Invalid argument: $OPTARG"
exit 1
;;
esac
done
shift $((OPTIND-1))
# Remove enabled topics
if [[ $uninstall ]]; then
_run rm -v "$(cd "$(dirname "$0")" && pwd -P)"/.enabled.d/*
fi
# Remove dead links
shopt -s nullglob
links=( $HOME/.* $HOME/.*/* )
for link in "${links[@]}"; do
if [[ -h "$link" && ! -e "$link" ]]; then
_run rm -vf "$link"
fi
done
# vim:set ft=sh: