diff --git a/dotfiles/zshrc.d/prune-broken-symlinks.zsh b/dotfiles/zshrc.d/prune-broken-symlinks.zsh index 458d2e4..7127807 100644 --- a/dotfiles/zshrc.d/prune-broken-symlinks.zsh +++ b/dotfiles/zshrc.d/prune-broken-symlinks.zsh @@ -1,4 +1,26 @@ prune-broken-symlinks() { setopt localoptions nounset - find $1 -type l -xtype l -print -delete + local ASK + local DIR + local FINDCMD + local i + + if [[ "${1:-}" == "-y" ]] ; then + ASK=0 + shift + else + ASK=1 + fi + DIR=${1:-.} + FINDCMD=(find ${DIR} -type l -xtype l) + if (($ASK)) ; then + ${FINDCMD} -print + echo -n 'Delete these links? [y/n] ' + if read -q ; then + ${FINDCMD} -delete + fi + echo + else + ${FINDCMD} -print -delete + fi }