Skip to content

Instantly share code, notes, and snippets.

@Odilio
Created February 5, 2020 17:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Odilio/3e14195db9807eab84771baa445e46a0 to your computer and use it in GitHub Desktop.
Save Odilio/3e14195db9807eab84771baa445e46a0 to your computer and use it in GitHub Desktop.
#!/bin/bash
export ME=${USER:-$(whoami)}
# tilix, git, zsh, curl and ohmyz.sh
sudo apt update -qm &&
sudo apt install -qy tilix zsh git curl fonts-firacode &&
bash -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" &&
sed -Ei "s/ZSH_THEME=\"robbyrussell\"/ZSH_THEME=\"lambda\"/" $HOME/.zshrc
sudo ln -s /etc/profile.d/vte-2.91.sh /etc/profile.d/vte.sh
echo 'if [ $TILIX_ID ] || [ $VTE_VERSION ]; then
source /etc/profile.d/vte.sh
fi' >>$HOME/.zshrc
sed -Ei "s/plugins=\(([^)]+)\)/plugins=\(\1 command-not-found\)/" $HOME/.zshrc
# docker and docker-compose
sudo bash -c "$(curl -fsSL https://get.docker.com)" &&
sudo usermod -aG docker $ME &&
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose &&
sudo chmod +x /usr/local/bin/docker-compose &&
sed -Ei "s/plugins=\(([^)]+)\)/plugins=\(\1 docker docker-compose\)/" $HOME/.zshrc
# nvm, node lts and yarn
zsh -c "$(curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh)" &&
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
nvm install --lts &&
npm i -g yarn &&
eval 'export PATH="$PATH:$(yarn global bin)"' &&
echo 'export PATH="$PATH:$(yarn global bin)"' >>$HOME/.zshrc &&
sed -Ei "s/plugins=\(([^)]+)\)/plugins=\(\1 npm yarn\)/" $HOME/.zshrc
# nestjs and create-react-app CLIs
yarn global add @nestjs/cli create-react-app
# .debs (code, discord, chrome, reactotron)
deb_download_install() {
URL=$1
PKG_SLUG=${2:-"pkg"}
echo "Downloading $PKG_SLUG..." &&
curl -fsSL $URL >./$PKG_SLUG.deb &&
echo "Installing $PKG_SLUG..." &&
sudo apt install -qqfy ./$PKG_SLUG.deb &&
echo "Removing .deb package of $PKG_SLUG..." &&
rm ./$PKG_SLUG.deb
}
deb_download_install 'https://go.microsoft.com/fwlink/?LinkID=760868' vscode
deb_download_install 'https://discordapp.com/api/download?platform=linux&format=deb' discord
deb_download_install 'https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb' google-chrome-stable
deb_download_install 'https://github.com/infinitered/reactotron/releases/download/v2.17.1/reactotron-app_2.17.1_amd64.deb' reactotron-2.17.1
## VSCode config
echo '"window.zoomLevel": 0,
"workbench.iconTheme": "material-icon-theme",
"workbench.colorTheme": "Monokai",
"editor.tabSize": 2,
"editor.fontSize": 14,
"editor.lineHeight": 24,
"editor.rulers": [80, 120],
"editor.formatOnSave": true,
"editor.fontLigatures": true,
"editor.fontFamily": "Fira Code",
"editor.suggestSelection": "first",
"terminal.integrated.fontSize": 14,
"files.eol": "\n",
"git.autofetch": true,
"liveshare.featureSet": "stable",
"vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue",
"tslint.packageManager": "yarn",
"eslint.packageManager": "yarn",
"eslint.validate": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact"
],
"eslint.options": {
"extensions": [".js", ".jsx", ".ts", ".tsx"]
},
"[markdown]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[jsonc]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[yaml]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[html]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}' >$HOME/.config/Code/User/settings.json
code --install-extension naumovs.color-highlight \
--install-extension ms-azuretools.vscode-docker \
--install-extension mikestead.dotenv \
--install-extension editorconfig.editorconfig \
--install-extension dbaeumer.vscode-eslint \
--install-extension waderyan.gitblame \
--install-extension donjayamanne.githistory \
--install-extension sidneys1.gitconfig \
--install-extension codezombiech.gitignore \
--install-extension eamodio.gitlens \
--install-extension oderwat.indent-rainbow \
--install-extension ms-vsliveshare.vsliveshare \
--install-extension yzhang.markdown-all-in-one \
--install-extension pkief.material-icon-theme \
--install-extension william-voyek.vscode-nginx \
--install-extension techer.open-in-browser \
--install-extension quicktype.quicktype \
--install-extension esbenp.prettier-vscode \
--install-extension 2gua.rainbow-brackets \
--install-extension ms-vscode-remote.vscode-remote-extensionpack \
--install-extension rocketseat.rocketseatreactjs \
--install-extension rocketseat.rocketseatreactnative \
--install-extension gruntfuggly.todo-tree \
--install-extension wayou.vscode-todo-highlight \
--install-extension ms-vscode.vscode-typescript-tslint-plugin \
--install-extension visualstudioexptteam.vscodeintellicode \
--install-extension redhat.vscode-yaml
# flatpaks (DBeaver, Postman)
flatpak install -y 'https://flathub.org/repo/appstream/io.dbeaver.DBeaverCommunity.flatpakref'
flatpak install -y 'https://flathub.org/repo/appstream/com.getpostman.Postman.flatpakref'
# Hosts file entries
echo '
# added by config.sh script
192.168.30.20 traefik.mobtelecom.com.br
192.168.30.20 swarmpit.mobtelecom.com.br
192.168.30.20 mailcatcher.mobtelecom.com.br
192.168.30.20 api-sapdev.mobtelecom.com.br
192.168.30.20 api-atrixdev.mobtelecom.com.br
192.168.30.20 service-adminsdev.mobtelecom.com.br
192.168.30.20 service-ticketsdev.mobtelecom.com.br
192.168.30.20 microservice-emaildev.mobtelecom.com.br
192.168.30.20 microservice-generate-pdfdev.mobtelecom.com.br
192.168.30.13 moi-vlcedkr-03.internal
192.168.30.15 moi-vlcedkr-04.internal
192.168.30.20 moi-vlcedkr-05.internal
192.168.30.21 moi-vlcedkr-06.internal
192.168.30.22 moi-vlcedkr-07.internal
192.168.30.24 unf-vldeapp-01.internal
192.168.30.113 moi-vlcedkr-08.internal
192.168.30.22 api.mobtelecom.com.br
192.168.30.22 apidev.mobtelecom.com.br
# 192.168.30.22 traefik.mobtelecom.com.br
192.168.30.22 docker.mobtelecom.com.br
192.168.30.22 portainer.mobtelecom.com.br
192.168.30.24 chatbot.mobtelecom.com.br
192.168.30.24 traefik.pdvm.local
# 192.168.30.35 traefik.mobtelecom.com.br
192.168.30.35 sap.mobtelecom.com.br
192.168.30.35 sapdev.mobtelecom.com.br
192.168.30.106 git.mobtelecom.local
192.168.30.113 minio.mobtelecom.internal
' | sudo tee -a /etc/hosts
# System update
sudo apt update -qm
sudo apt full-upgrade -qy
# Checks and reports
echo "Checking installed debs..."
for cmd in \
tilix zsh git curl \
docker docker-compose \
nvm node yarn \
nest create-react-app \
code google-chrome discord reactotron-app; do
echo -n "$cmd... " &&
which $cmd >/dev/null && echo -e "\e[0;32mInstalled\e[0m" || echo -e "\e[0;31mNot installed\e[0m"
done
echo "Checking installed flatpaks..."
for fpak in \
'io.dbeaver.DBeaverCommunity/x86_64/stable' \
'com.getpostman.Postman/x86_64/stable'; do
echo -n "$fpak... " &&
flatpak list | grep -c $fpak >/dev/null && echo -e "\e[0;32mInstalled\e[0m" || echo -e "\e[0;31mNot installed\e[0m"
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment