-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathlegacy-installer.sh
executable file
·159 lines (129 loc) · 2.89 KB
/
legacy-installer.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
150
151
152
153
154
155
156
157
158
#!/usr/bin/env bash
#
# bootstrap installs things.
# original by: https://github.com/holman/dotfiles
DOTFILES_ROOT="`pwd`"
DOTFILES_LIST=(
agignore
atom
bash_profile
bashrc
dotfiles
inputrc
gemrc
gitconfig
githelpers
gitignore_global
gvimrc
htoprc
iftoprc
irbrc
powconfig
psqlrc
slate
spacemacs
tmux.conf
vimrc
dircolors-solarized
zshrc
zprofile
)
set -e
echo ''
info () {
printf " [ \033[00;34m..\033[0m ] $1\n"
}
user () {
printf "\r [ \033[0;33m?\033[0m ] $1 "
}
success () {
printf "\r\033[2K [ \033[00;32mOK\033[0m ] $1\n"
}
fail () {
printf "\r\033[2K [\033[0;31mFAIL\033[0m] $1\n"
echo ''
exit
}
link_files () {
ln -s $DOTFILES_ROOT/$1 $2
success "linked $1 to $2"
}
setup_nvim_dir () {
nvim_config_dir=~/.config/nvim
nvim_vimrc_link="$nvim_config_dir/init.vim"
info "checking for neovim config link: $nvim_vimrc_link"
if [[ ! -d $nvim_config_dir ]]; then
info "creating neovim config directory"
mkdir -p $nvim_config_dir
fi
if [[ ! -e $nvim_vimrc_link ]]; then
info "linking .vimrc for neovim"
ln -s $DOTFILES_ROOT/vimrc $nvim_vimrc_link
if [[ -h $nvim_vimrc_link ]]; then
success "link created"
fi
elif [[ ! -h $nvim_vimrc_link ]]; then
fail "neovim config is a real file, not a link to the vimrc!"
else
success "neovim config link exists"
fi
}
install_dotfiles () {
info "installing dotfiles"
overwrite_all=false
backup_all=false
skip_all=false
for source in "${DOTFILES_LIST[@]}"
do
dest="$HOME/.$source"
if [ -f $dest ] || [ -d $dest ] || [ -L $dest ]
then
overwrite=false
backup=false
skip=false
if [ "$overwrite_all" == "false" ] && [ "$backup_all" == "false" ] && [ "$skip_all" == "false" ]
then
user "File already exists: `basename $source`, what do you want to do? [s]kip, [S]kip all, [o]verwrite, [O]verwrite all, [b]ackup, [B]ackup all?"
read -n 1 action
case "$action" in
o )
overwrite=true;;
O )
overwrite_all=true;;
b )
backup=true;;
B )
backup_all=true;;
s )
skip=true;;
S )
skip_all=true;;
* )
;;
esac
fi
if [ "$overwrite" == "true" ] || [ "$overwrite_all" == "true" ]
then
rm -rf $dest
success "removed $dest"
fi
if [ "$backup" == "true" ] || [ "$backup_all" == "true" ]
then
mv $dest $dest\.backup
success "moved $dest to $dest.backup"
fi
if [ "$skip" == "false" ] && [ "$skip_all" == "false" ]
then
link_files $source $dest
else
success "skipped $source"
fi
else
link_files $source $dest
fi
done
}
install_dotfiles
setup_nvim_dir
echo ''
echo ' All installed!'