summaryrefslogtreecommitdiffstats
path: root/uninstall
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2014-05-21 01:14:21 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2014-05-21 01:16:42 +0900
commitf37be006c374392464bd1964fca4f2b227e8e07d (patch)
treec060ff3d0aeca8f55205f6d7eec70fc45bb14cde /uninstall
parent459c3323516830a7b0e5a3fda1719b820ac5de22 (diff)
Update uninstall script
Diffstat (limited to 'uninstall')
-rwxr-xr-xuninstall62
1 files changed, 26 insertions, 36 deletions
diff --git a/uninstall b/uninstall
index be69e15d..202d8e31 100755
--- a/uninstall
+++ b/uninstall
@@ -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