-
Notifications
You must be signed in to change notification settings - Fork 2
/
install.sh
executable file
·102 lines (82 loc) · 2.56 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
#!/usr/bin/env bash
set -euxo pipefail
CWD="$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd)"
if [ -f /usr/bin/cygwin1.dll ]; then
WINHOME=$(cygpath "$USERPROFILE")
fi
install () {
rm -rf "$HOME/$2"
mkdir -p "$(dirname "$HOME/$2")"
if [[ -v WINHOME ]]; then
rm -rf "$WINHOME/$2"
mkdir -p "$(dirname "$WINHOME/$2")"
cp -Ra "$CWD/$1" "$HOME/$2"
cp -Ra "$CWD/$1" "$WINHOME/$2"
else
ln -s "$CWD/$1" "$HOME/$2"
fi
}
uninstall () {
if [[ -v WINHOME ]]; then
rm -rf "$WINHOME/$1"
fi
rm -rf "$HOME/$1"
}
###############################################################################
# dotfiles
###############################################################################
declare -a files=(
.bash_profile
.bashrc
.cargo/config
.config/htop/htoprc
.curlrc
.dircolors
.editorconfig
.gitconfig
.hushlogin
.inputrc
.ls++.conf
.minttyrc
.mostrc
.ncmpcpp
.psqlrc
.tmux.conf
.wgetrc
.zshrc
)
for file in "${files[@]}"; do
install "$file" "$file"
done
###############################################################################
# nvim, vim, vim-plug
###############################################################################
uninstall ".config/nvim"
uninstall ".vim"
uninstall ".vimrc"
install ".vim" ".config/nvim"
install ".vimrc" ".config/nvim/init.vim"
install ".vim" ".vim"
install ".vimrc" ".vimrc"
if [ ! -f "$HOME/.vim/autoload/plug.vim" ]; then
curl -sfLo "$HOME/.vim/autoload/plug.vim" --create-dirs 'https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
fi
# PlugInstall seems to abort mid-way, run it multiple times
vim -c ':PlugInstall! | :PlugInstall! | :PlugInstall! | :PlugUpdate! | :q! | :q!'
###############################################################################
# zsh
###############################################################################
rm -rf "$HOME/.gitstatus"
git clone --depth=1 [email protected]:romkatv/gitstatus.git "$HOME/.gitstatus"
rm -rf "$HOME/.zinit"
mkdir "$HOME/.zinit"
git clone --depth=1 [email protected]:zdharma-continuum/zinit.git "$HOME/.zinit/bin"
###############################################################################
# tpm
###############################################################################
rm -rf "$HOME/.tmux/plugins/tpm"
git clone --depth=1 [email protected]:tmux-plugins/tpm.git "$HOME/.tmux/plugins/tpm"
###############################################################################
# finish
###############################################################################
echo -e "Installation done. Restart you shell to complete."