forked from poliyka/ubuntu-initialize-script
-
Notifications
You must be signed in to change notification settings - Fork 0
/
install.sh
executable file
·199 lines (178 loc) · 6.99 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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
#!/bin/bash
################################################################################
# Script for installing Ubuntu 20.04 initialize dependencise package
# Author: Poliyka
################################################################################
#--------------------------------------------------
# OE Settings
# OE SYS:
# 1 : Debian, Ubuntu, Mint
# 2 : Red Hat, Fedora, CentOS
# 3 : SUSE
# 4 : MacOS
#--------------------------------------------------
OE_USER="poliyka"
OE_HOME="/home/$OE_USER"
OE_SYS="1"
#--------------------------------------------------
# Choose Dependencise
#--------------------------------------------------
UPDATE_SERVER="True"
INSTALL_DEPENDEN="True"
# Choices Packages
INSTALL_RANGER="True"
INSTALL_NVM="True"
INSTALL_YARN="True"
INSTALL_FZF="True"
INSTALL_PYENV="True"
CONFIG_BASHRC_COLOR="True"
CONFIG_GIT_ALIAS="True"
#--------------------------------------------------
# Update Server
#--------------------------------------------------
if [ $UPDATE_SERVER = "True" ]; then
echo -e "\n---- Update Server ----"
sudo apt-get update
sudo apt-get upgrade -y
fi
#--------------------------------------------------
# Install Dependencies
#--------------------------------------------------
if [ $INSTALL_DEPENDEN = "True" ]; then
echo -e "\n---- Installing apt-get Dependencise ----"
sudo apt-get install python3-venv python3-wheel libxslt-dev libzip-dev libldap2-dev libsasl2-dev -y
sudo apt-get install python3-setuptools node-less libpng12-0 libjpeg-dev gdebi python3-virtualenv -y
sudo apt-get install git python3 python3-pip build-essential wget make vim python3-dev -y
sudo apt-get install libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev curl llvm libncurses5-dev -y
sudo apt-get install libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl libxml2-dev -y
sudo apt-get install libxslt1-dev libjpeg62-dev vim-gtk3 pipenv silversearcher-ag exuberant-ctags figlet tox net-tools -y
fi
#--------------------------------------------------
# Install Ranger
#--------------------------------------------------
if [ $INSTALL_RANGER = "True" ]; then
echo -e "\n---- Install Ranger ----"
sudo git clone https://github.com/ranger/ranger.git $OE_HOME/ranger
sudo su - -c "cd ${OE_HOME}/ranger; make install"
sudo su $OE_USER -c "ranger --copy-config=all"
sudo rm -rf ${OE_HOME}/ranger
echo -e "\n---- Set Ranger open on vscode command ----"
sed -i -e '$a\
\nclass code(Command):\
def execute(self):\
dirname = self.fm.thisdir.path\
codecmd = ["code", dirname]\
self.fm.execute_command(codecmd)\
' $OE_HOME/.config/ranger/commands.py
fi
#--------------------------------------------------
# Install Nvm + Yarn
#--------------------------------------------------
if [ $INSTALL_NVM = "True" ]; then
echo -e "\n---- Install Nvm Mnager ----"
sudo su $OE_USER -c "curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash"
fi
if [ $INSTALL_YARN = "True" ]; then
echo -e "\n---- Install Yarn ----"
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install yarn -y
fi
#--------------------------------------------------
# Install fzf
#--------------------------------------------------
if [ $INSTALL_FZF = "True" ]; then
echo -e "\n---- Install fzf ----"
sudo su $OE_USER -c "git clone --depth 1 https://github.com/junegunn/fzf.git $OE_HOME/.fzf"
sudo su $OE_USER -c ${OE_HOME}/.fzf/install << 'EOF'
y
y
y
EOF
fi
#--------------------------------------------------
# Install pyenv
#--------------------------------------------------
if [ $INSTALL_PYENV = "True" ]; then
echo -e "\n---- Install pyenv ----"
# sudo su $OE_USER -c "curl -L https://raw.github.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash"
# (Debian, Ubuntu, Mint):
if [ $OE_SYS = "1" ]; then
sed -Ei -e '/^([^#]|$)/ {a \
export PYENV_ROOT="$HOME/.pyenv"
a \
export PATH="$PYENV_ROOT/bin:$PATH"
a \
' -e ':a' -e '$!{n;ba};}' $OE_HOME/.profile
echo 'eval "$(pyenv init --path)"' >>$OE_HOME/.profile
echo 'eval "$(pyenv init -)"' >> $OE_HOME/.bashrc
fi
# (Red Hat, Fedora, CentOS):
if [ $OE_SYS = "2" ]; then
sed -Ei -e '/^([^#]|$)/ {a \
export PYENV_ROOT="$HOME/.pyenv"
a \
export PATH="$PYENV_ROOT/bin:$PATH"
a \
' -e ':a' -e '$!{n;ba};}' $OE_HOME/.bash_profile
echo 'eval "$(pyenv init --path)"' >> $OE_HOME/.bash_profile
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> $OE_HOME/.profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> $OE_HOME/.profile
echo 'eval "$(pyenv init --path)"' >> $OE_HOME/.profile
echo 'eval "$(pyenv init -)"' >> $OE_HOME/.bashrc
fi
# (SUSE):
if [ $OE_SYS = "3" ]; then
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> $OE_HOME/.profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> $OE_HOME/.profile
echo 'eval "$(pyenv init --path)"' >> $OE_HOME/.profile
echo 'if command -v pyenv >/dev/null; then eval "$(pyenv init -)"; fi' >> $OE_HOME/.bashrc
fi
# (MacOS):
if [ $OE_SYS = "4" ]; then
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> $OE_HOME/.profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> $OE_HOME/.profile
echo 'eval "$(pyenv init --path)"' >> $OE_HOME/.profile
echo 'if [ -n "$PS1" -a -n "$BASH_VERSION" ]; then source ~/.bashrc; fi' >> $OE_HOME/.profile
echo 'eval "$(pyenv init -)"' >> $OE_HOME/.bashrc
fi
fi
#--------------------------------------------------
# Config bashrc
#--------------------------------------------------
if [ $CONFIG_BASHRC_COLOR = "True" ]; then
echo -e "\n---- Config bashrc color ----"
sed -i -e '$a\
\
parse_git_branch() {\
git branch 2> /dev/null | sed -e \"/^[^*]/d\" -e \"s/* \\(.*\\)/ (\\1)/\"\
}\
export PS1=\"\\[\\033[01;32m\\]\\u@\\h\\[\\e[91m\\]\\$(parse_git_branch) \\[\\e[1;33m\\]\\D{%Y/%m/%d} \\t\\[\\033[00m\\]:\\n\\[\\e[34m\\]\\w\\[\\e[00m\\]\$ \"
' $OE_HOME/.bashrc
fi
#--------------------------------------------------
# Config Git Alias
#--------------------------------------------------
if [ $CONFIG_GIT_ALIAS = "True" ]; then
echo -e "\n---- Config git alias ----"
GITCONFIG_PATH=$OE_HOME/.gitconfig
if [[ ! -f "$GITCONFIG_PATH" ]]; then
sudo su $OE_USER -c "touch ${GITCONFIG_PATH}"
fi
if ! sed -n '/\[alias\]/p' $GITCONFIG_PATH | grep '[alias]'; then
sudo su $OE_USER -c "printf '[alias]\n' >> $GITCONFIG_PATH"
fi
sudo su $OE_USER -c "python3 git_config.py"
fi
echo "-----------------------------------------------------------"
echo "Done! Ubuntu Initialize Dependenies:"
echo " INSTALL_RANGER = ${INSTALL_RANGER}"
echo " INSTALL_NVM = ${INSTALL_NVM}"
echo " INSTALL_YARN = ${INSTALL_YARN}"
echo " INSTALL_FZF = ${INSTALL_FZF}"
echo " INSTALL_PYENV = ${INSTALL_PYENV}"
echo " CONFIG_BASHRC_COLOR = ${CONFIG_BASHRC_COLOR}"
echo " CONFIG_GIT_ALIAS = ${CONFIG_GIT_ALIAS}"
echo "Finished. Restart your shell or reload config file."
echo "source ~/.bashrc"
echo "-----------------------------------------------------------"