-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathinstall.sh
executable file
·149 lines (136 loc) · 4.07 KB
/
install.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
#!/usr/bin/env bash
#
# color macros
# reset colors
COL_RESET="\033[0m"
# regular colors
RED="\033[31;1m"
BLUE="\033[34;1m"
need_cmd () {
if ! hash "$1" &>/dev/null; then
echo -e "${RED}need '$1' (command not found)${COL_RESET}"
exit 1
fi
}
fetch_repo () {
if [[ -d "$HOME/.oob-vim" ]]; then
git --git-dir "$HOME/.oob-vim/.git" pull
echo -e "${BLUE}Successfully update oob-vim${COL_RESET}"
else
git clone https://github.com/zer4tul/oob-vim.git "$HOME/.oob-vim"
echo -e "${BLUE}Successfully clone oob-vim${COL_RESET}"
fi
}
install_vim () {
if [[ -f "$HOME/.vimrc" ]]; then
mv "$HOME/.vimrc" "$HOME/.vimrc_back"
echo -e "${BLUE}BackUp $HOME/.vimrc${COL_RESET}"
fi
if [[ -d "$HOME/.vim" ]]; then
if [[ $(readlink "$HOME"/.vim) =~ \.oob-vim$ ]]; then
echo -e "${BLUE}Installed oob-vim for vim${COL_RESET}"
else
mv "$HOME/.vim" "$HOME/.vim_back"
echo -e "${BLUE}BackUp $HOME/.vim${COL_RESET}"
ln -s "$HOME/.oob-vim" "$HOME/.vim"
echo -e "${BLUE}Installed oob-vim for vim${COL_RESET}"
fi
else
ln -s "$HOME/.oob-vim" "$HOME/.vim"
echo -e "${BLUE}Installed oob-vim for vim${COL_RESET}"
fi
# vim +PlugInstall +qa
vim +call "dein#install" +qa
}
install_neovim () {
if [[ -d "$HOME/.config/nvim" ]]; then
if [[ "$(readlink $HOME/.config/nvim)" =~ \.oob-vim$ ]]; then
echo -e "${BLUE}Installed oob-vim for neovim${COL_RESET}"
else
mv "$HOME/.config/nvim" "$HOME/.config/nvim_back"
echo -e "${BLUE}BackUp $HOME/.config/nvim${COL_RESET}"
ln -s "$HOME/.oob-vim" "$HOME/.config/nvim"
echo -e "${BLUE}Installed oob-vim for neovim${COL_RESET}"
fi
else
ln -s "$HOME/.oob-vim" "$HOME/.config/nvim"
echo -e "${BLUE}Installed oob-vim for neovim${COL_RESET}"
fi
nvim +call "dein#install" +qa
}
uninstall_vim () {
if [[ -d "$HOME/.vim" ]]; then
if [[ "$(readlink $HOME/.vim)" =~ \.oob-vim$ ]]; then
rm "$HOME/.vim"
echo -e "${BLUE}Uninstall oob-vim for vim${COL_RESET}"
if [[ -d "$HOME/.vim_back" ]]; then
mv "$HOME/.vim_back" "$HOME/.vim"
echo -e "${BLUE}Recover $HOME/.vim${COL_RESET}"
fi
fi
fi
if [[ -f "$HOME/.vimrc_back" ]]; then
mv "$HOME/.vimrc_back" "$HOME/.vimrc"
echo -e "${BLUE}Recover $HOME/.vimrc${COL_RESET}"
fi
}
uninstall_neovim () {
if [[ -d "$HOME/.config/nvim" ]]; then
if [[ "$(readlink $HOME/.config/nvim)" =~ \.oob-vim$ ]]; then
rm "$HOME/.config/nvim"
echo -e "${BLUE}Uninstall oob-vim for neovim${COL_RESET}"
if [[ -d "$HOME/.config/nvim_back" ]]; then
mv "$HOME/.config/nvim_back" "$HOME/.config/nvim"
echo -e "${BLUE}Recover $HOME/.config/nvim${COL_RESET}"
fi
fi
fi
}
usage () {
echo "$0"
echo " Install oob-vim for vim and neovim"
echo " install.sh"
echo " Install oob-vim for vim only or neovim only"
echo " install.sh install vim"
echo " or"
echo " install.sh install neovim"
echo " Uninstall oob-vim"
echo " install.sh uninstall"
}
if [ $# -gt 0 ]
then
case $1 in
uninstall)
uninstall_vim
uninstall_neovim
exit 0
;;
install)
need_cmd 'git'
fetch_repo
if [ $# -eq 2 ]
then
case $2 in
neovim)
install_neovim
exit 0
;;
vim)
install_vim
exit 0
esac
fi
install_vim
install_neovim
exit 0
;;
-h)
usage
exit 0
esac
fi
# if no argv, installer will install oob-vim
need_cmd 'git'
fetch_repo
install_vim
install_neovim