-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.sh
130 lines (104 loc) · 2.31 KB
/
setup.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
#!/bin/sh
#
# Sets up the dotfiles environment by creating the necessary symlinks
info()
{
echo "\033[32m\033[1m[*]\033[0m $1"
}
warn()
{
echo "\033[31m\033[1mWARNING:\033[0m \033[33m$1\033[0m"
}
confirm()
{
while true; do
read -p " $1(Yy/Nn) " yn
case $yn in
[Yy]* ) return 0;;
[Nn]* ) return 1;;
* ) echo "\033[31mPlease answer y/n\033[0m";;
esac
done
}
check_dir_exists()
{
if [ -d $1 ]; then
warn "directory $1 already exists!"
if ( confirm "Save contents of old $1 to $1_old?" ); then
mv $1 $1_old
else
rm -rf $1
fi
fi
}
check_file_exists()
{
if [ -f $1 ]; then
warn "file $1 already exists!"
if ( confirm "Save contents of old $1 to $1_old?" ); then
mv $1 $1_old
else
rm -rf $1
fi
fi
}
meets_prereqs()
{
if [ ! -f $PWD/setup.sh ]; then
return 1
fi
if [ ! -f $PWD/setup.bat ]; then
return 1
fi
return 0
}
setup_vim()
{
info "Setting up vim configuration"
check_dir_exists ~/.vim
ln -s $PWD/vim ~/.vim
check_file_exists ~/.vimrc
ln -s $PWD/vimrc ~/.vimrc
}
setup_bash()
{
info "Setting up bash configuration"
check_file_exists ~/.bashrc
ln -s $PWD/bash/bashrc ~/.bashrc
check_file_exists ~/.bash_profile
ln -s $PWD/bash/bash_profile ~/.bash_profile
check_file_exists ~/.inputrc
ln -s $PWD/bash/inputrc ~/.inputrc
}
setup_zsh()
{
info "Setting up zsh configuration"
check_file_exists ~/.zshrc
ln -s $PWD/zsh/zshrc ~/.zshrc
sh -c "$(curl -fsSL https://github.com/raw/ohmyzsh/ohmyzsh/master/tools/install.sh)"
ln -s $PWD/zsh/powerlevel10k/powerlevel10k.zsh-theme ~/.oh-my-zsh/themes/powerlevel10k.zsh-theme
ln -s $PWD/zsh/p10k.zsh ~/.p10k.zsh
}
setup_screen()
{
info "Setting up screen configuration"
check_file_exists ~/.screenrc
ln -s $PWD/screen/screenrc ~/.screenrc
}
post_setup()
{
echo "Please view README.md for post-install additional downloads."
}
main()
{
if ( ! meets_prereqs ); then
warn "setup.sh needs to be run in the dotfiles/ repository directory"
exit
fi
setup_vim
setup_bash
setup_zsh
setup_screen
post_setup
}
main