-
Notifications
You must be signed in to change notification settings - Fork 0
/
installscript
executable file
·216 lines (189 loc) · 7 KB
/
installscript
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
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
#!/bin/bash
printf "${NORMAL}\n [ START ] Update & Upgrade"
starttime=$(date +%s)
trap '' 2
sudo apt -y upgrade && sudo apt -y dist-upgrade
trap 2
endtime=$(date +%s)
printf " [ DONE ] Update & Upgrade ... %s seconds\n" "$((endtime - starttime))"
printf "\n [ START ] Installing common requirements"
starttime=$(date +%s)
apps=(
software-properties-common
build-essential
apt-transport-https
git
curl
unzip
libssl-dev
ca-certificates
ffmpeg
)
trap '' 2
sudo apt -y install "${apps[@]}"
trap 2
unset apps
endtime=$(date +%s)
printf " [ DONE ] common requirements ... %s seconds\n" "$((endtime - starttime))"
printf "\n\n Install PHP"
printf "\n ------------------"
printf "\n Install PHP? (y/n) "
read -p 'Answer: ' reply
if [[ $reply =~ ^[Yy]$ ]]
then
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update -y
sudo apt install php php-cli php-fpm php-json php-common php-mysql php-zip php-gd php-imagick php-mbstring php-curl php-xml php-xmlrpc php-curl php-pear php-bcmath php-imap php-mbstring php7.4-opcache php-zip php-intl -y
php -v
fi
# Install python
echo 'Install Phython & PIP'
echo '-----------------'
sudo apt install python-minimal -y
sudo apt install python-pip -y
python --version
pip --version
# Install python
echo 'Install diverse Libs'
echo '-----------------'
sudo apt-get install gconf-service libasound2 libatk1.0-0 libatk-bridge2.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget -y
# Install zsh
echo 'Install oh-my-zsh'
echo '-----------------'
sudo apt install zsh -y
sudo chsh -s /usr/bin/zsh
sudo rm -rf ~/.oh-my-zsh
curl -L https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh
# Install powerlevel9k
echo 'Install Powerlevel 10K'
echo '-----------------'
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/.oh-my-zsh/custom/themes/powerlevel10k
# Install Powerline-Symbols
echo 'Install Powerline-Symbols'
echo '-----------------'
sudo apt-get install fontconfig -y
wget https://github.com/powerline/powerline/raw/develop/font/PowerlineSymbols.otf
wget https://github.com/powerline/powerline/raw/develop/font/10-powerline-symbols.conf
mkdir -p ~/.local/share/fonts/
mkdir -p ~/.config/fontconfig/conf.d/
mv PowerlineSymbols.otf ~/.local/share/fonts/
sudo fc-cache -vf ~/.local/share/fonts/
mv 10-powerline-symbols.conf ~/.config/fontconfig/conf.d/
# Install zsh-autosuggestions
echo 'Install zsh-autosuggestions'
echo '-----------------'
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
# Install zsh-syntax-highlighting
echo 'Install zsh-syntax-highlighting'
echo '-----------------'
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
# Install Mackup
echo 'Install Mackup'
echo '-----------------'
pip install --upgrade mackup
if [ "$wslnum" == "1"]
then
# Install Docker
echo 'Install Docker'
echo '-----------------'
sudo apt-get update -y
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update -y
sudo apt-get install -y docker-ce
sudo usermod -aG docker $USER
fi
# Symlink zsh prefs
rm ~/.zshrc
if [ "$wslnum" == "1"]
then
ln -s ~/.dotfiles/shell/.wsl1 ~/.zshrc
else
ln -s ~/.dotfiles/shell/.wsl2 ~/.zshrc
fi
# Symlink yarn prefs
rm ~/.yarnrc
ln -s ~/.dotfiles/shell/.yarnrc ~/.yarnrc
# Symlink warp prefs
rm ~/.warprc
ln -s ~/.dotfiles/shell/.warprc ~/.warprc
# Copy the Mackup config
rm ~/.mackup.cfg
cp ~/.dotfiles/macros/.mackup.cfg ~/.mackup.cfg
#Copy WSL config
sudo cp ~/.dotfiles/shell/wsl.conf /etc/wsl.conf
echo 'Install composer'
echo '----------------'
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'a5c698ffe4b8e849a443b120cd5ba38043260d5c4023dbf93e1558871f1f07f58274fc6f4c93bcfd858c6bd0775cd8d1') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer
echo 'Install node.js'
echo '----------------'
sudo apt-get update -y
sudo apt -y install curl dirmngr apt-transport-https lsb-release ca-certificates
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt install nodejs -y
nodejs -v
echo 'Install yarn'
echo '----------------'
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 update
sudo apt install yarn
yarn --version
echo 'Install Global NPM Packages'
echo '----------------'
sudo npm i @vue/cli
sudo npm i @vue/cli-service-global
sudo npm install -g eslint
sudo npm install -g ffmpeg-progressbar-cli
printf "\n Config personal things (Y/n): "
read -r personalconfig
if [ -z "${personalconfig}" ] || [ "${personalconfig}" == Y ] || [ "${personalconfig}" == y ]; then
printf "\n Your Name (Default: Stephan Jess): "
read -r username
if [ -z "${username}" ]; then
username="Stephan Jess"
echo "$username"
fi
git config --global user.name "${username}"
printf "\n Your E-Mail (Default: s.jess@novagraphix.de): "
read -r email
if [ -z "${email}" ]; then
email="s.jess@novagraphix.de"
echo "$email"
fi
git config --global user.email "${email}"
if [ ! -d ~/.ssh ]; then
ssh-keygen -t rsa -b 4096 -C "${email}"
fi
fi
printf "\n SSH-Key generated in ~/.ssh\n"
printf "\n [ START ] Cleaning"
starttime=$(date +%s)
trap '' 2
sudo apt -y autoremove && sudo apt -y autoclean && sudo apt -y clean
trap 2
endtime=$(date +%s)
printf " [ DONE ] Cleaning ... %s seconds\n" "$((endtime - starttime))"
endtotaltime=$(date +%s)
printf "\n Total Execution Time ... %s seconds\n" "$((endtotaltime - starttotaltime))\n"
# Change Shell
chsh -s $(which zsh)
zsh
source ~/.zshrc
echo "${GREEN}++++++++++++++++++++++++++++++"
echo '++++++++++++++++++++++++++++++'
echo 'All done! Restart Console!'
echo 'Things to do to make the terminal theme work:'
echo "${RED}1. Install (Windows) FiraCode patched font included in ~/.dotfiles/misc${GREEN}"
echo '++++++++++++++++++++++++++++++'
echo 'Some optional tidbits'
echo "${RED}1. Make a .dotfiles-custom/shell/.aliases for your personal commands${GREEN}"
echo '++++++++++++++++++++++++++++++'
echo '++++++++++++++++++++++++++++++'