diff options
author | Junegunn Choi <junegunn.c@gmail.com> | 2014-05-21 01:14:21 +0900 |
---|---|---|
committer | Junegunn Choi <junegunn.c@gmail.com> | 2014-05-21 01:16:42 +0900 |
commit | f37be006c374392464bd1964fca4f2b227e8e07d (patch) | |
tree | c060ff3d0aeca8f55205f6d7eec70fc45bb14cde /uninstall | |
parent | 459c3323516830a7b0e5a3fda1719b820ac5de22 (diff) |
Update uninstall script
Diffstat (limited to 'uninstall')
-rwxr-xr-x | uninstall | 62 |
1 files changed, 26 insertions, 36 deletions
@@ -1,52 +1,42 @@ #!/bin/bash remove_line() { - echo "Remove from $2:" - echo " - $1" - - i=$(grep -c "$1" "$2") - if [ $i -eq 0 ] - then - echo " - Nothing found" + src=$(readlink "$2") + if [ $? -eq 0 ]; then + echo "Remove from $2 ($src):" + else + src=$2 + echo "Remove from $2:" fi - - while [ $i -gt 0 ] - do - line=$(grep -m1 -nF "$1" "$2") - lineNumber=$(grep -m1 -nF "$1" "$2" | sed 's/:.*//') - if [ -n "$lineNumber" ]; then - echo " - Remove line ($line)" - awk -v n=$lineNumber 'NR == n {next} {print}' $2 > $2.bak && mv $2.bak $2 - else - echo " - Nothing found" - fi - i=`expr $i - 1` + echo " - $1" + + changed=0 + while [ 1 ]; do + line=$(grep -m1 -nF "$1" "$src") || break + line_no=$(sed 's/:.*//' <<< "$line") + echo " - Remove line ($line)" + awk -v n=$line_no 'NR == n {next} {print}' "$src" > "$src.bak" && + mv "$src.bak" "$src" || break + changed=1 done + [ $changed -eq 0 ] && echo " - Nothing found" echo } for shell in bash zsh; do - if [ -f ~/.fzf.${shell} ] - then - rm ~/.fzf.${shell} - fi + rm -f ~/.fzf.${shell} remove_line "source ~/.fzf.${shell}" ~/.${shell}rc - bind_file="~/.config/fish/functions/fish_user_key_bindings.fish" - if [ -f $bind_file ] - then - remove_line "fzf_key_bindings" "$bind_file" - fi done -if [ -d ~/.config/fish/functions ] -then - if [ -f ~/.config/fish/functions/fzf.fish ] - then - rm ~/.config/fish/functions/fzf.fish - fi +bind_file=~/.config/fish/functions/fish_user_key_bindings.fish +if [ -f "$bind_file" ]; then + remove_line "fzf_key_bindings" "$bind_file" +fi + +if [ -d ~/.config/fish/functions ]; then + rm -f ~/.config/fish/functions/fzf.fish - if [ "$(ls -A ~/.config/fish/functions)" ] - then + if [ "$(ls -A ~/.config/fish/functions)" ]; then echo "Can't delete non-empty directory: \"~/.config/fish/functions\"" else rmdir ~/.config/fish/functions |