Skip to content

Instantly share code, notes, and snippets.

@hanskw4267
Last active September 3, 2021 03:27
Show Gist options
  • Select an option

  • Save hanskw4267/73f25e14ed295081e9d952d825f478cd to your computer and use it in GitHub Desktop.

Select an option

Save hanskw4267/73f25e14ed295081e9d952d825f478cd to your computer and use it in GitHub Desktop.
My personal linux setup scripts
#! /usr/bin/env bash
# Post install script to setup a linux development environment
onlyroot="Do not run this script as root!!!"
if [ $(whoami) == "root" ]; then #"guarding against root execution"
echo -e $COLOR$onlyroot$MONO
exit 0
fi
apt_install () {
read -r -p "Do you wish to install $1?? [y/N]" reply
case "$reply" in
[yY][eE][sS]|[yY] )
sudo apt install -y $1
if [ $? -eq 0 ]; then
echo "<--------------------------- $1 Install OK"
else
echo "<--------------------------- $1 Install failed"
exit $?
fi
;;
* )
echo "Okay, no problem. :) Let's move on!"
echo "Skipping $1"
;;
esac
}
code_install () {
read -r -p "Do you wish to install $1?? [y/N]" reply
case "$reply" in
[yY][eE][sS]|[yY] )
code --install-extension $1
if [ $? -eq 0 ]; then
echo "<--------------------------- $1 Install OK"
else
echo "<--------------------------- $1 Install failed"
exit $?
fi
;;
* )
echo "Okay, no problem. :) Let's move on!"
echo "Skipping $1"
;;
esac
}
snap_install () {
read -r -p "Do you wish to install ${1}?? Make SURE you have snap store installed [y/N]" reply
case "$reply" in
[yY][eE][sS]|[yY] )
sudo snap install $1
if [ $? -eq 0 ]; then
echo "<--------------------------- $1 Install OK"
else
echo "<--------------------------- $1 Install failed"
exit $?
fi
;;
* )
echo "Okay, no problem. :) Let's move on!"
echo "Skipping $1"
;;
esac
}
echo "-------------------------------------------------"
echo "<-- Ubuntu Development Setup - Hans -->"
echo "-------------------------------------------------"
echo "-------------------------------------------------"
echo " <-- Checking system version -->"
echo "-------------------------------------------------"
if [ -f /etc/os-release ]; then
# freedesktop.org and systemd
. /etc/os-release
OS=$NAME
VER=$VERSION_ID
fi
SYS_CHECK_OK=0
if [[ "$OS" == "Ubuntu" ]] ; then
SYS_CHECK_OK=1
echo " <-- SYSTEM VERSION CHECK OK -->\n"
else
read -r -p " Your system is not Ubuntu, continue to setup anyways? [y/N]" reply
case "$reply" in
[yY][eE][sS]|[yY] )
SYS_CHECK_OK=1;
echo " <-- SYSTEM VERSION CHECK FAILED BUT CONTINUING -->\n"
;;
* )
SYS_CHECK_OK=0
echo " <-- SYSTEM VERSION CHECK FAILED -->\n"
exit -1
;;
esac
fi
if [[ "$SYS_CHECK_OK" == 0 ]]; then
exit -1
fi
echo "<-- Updating base system -->"
sudo apt update
sudo apt upgrade -y
echo "-------------------------------------------------"
echo "<-- Installing common tools -->"
apt_install "snapd"
apt_install "terminator"
apt_install "vim"
apt_install "nano"
apt_install "wget"
apt_install "curl"
apt_install "openssh-server"
apt_install "build-essential cmake"
apt_install "virtualenv python3-pip"
apt_install "net-tools"
echo "-------------------------------------------------"
echo "<-- Installing snaps -->"
snap_install "spotify"
snap_install "slack --classic"
snap_install "slack-term"
snap_install "telegram-desktop"
echo "-------------------------------------------------"
echo "<-- Git install and config -->"
read -r -p "Do you wish to install git?? [y/N]" reply
case "$reply" in
[yY][eE][sS]|[yY] )
echo "Installing Git"
sudo apt install -y git
read -r -p "Do you wish to configure git?? [y/N]" reply
case "$reply" in
[yY][eE][sS]|[yY] )
echo "What username do you want to use for git?"
read git_username
git config --global user.name "$git_username"
echo "-----------------------------------------"
echo "What user email do you want to use for git?"
read git_useremail
git config --global user.email "$git_useremail"
;;
* )
echo "Okay, no problem. :) Let's move on!"
echo "Skipping Git config"
;;
esac
;;
* )
echo "Okay, no problem. :) Let's move on!"
echo "Skipping Git"
;;
esac
echo "-------------------------------------------------"
echo "<-- VSCode install and config -->"
read -r -p "Do you wish to install VSCode?? [y/N]" reply
case "$reply" in
[yY][eE][sS]|[yY] )
echo "Installing VSCode"
sudo apt install -y apt-transport-https
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/
sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/trusted.gpg.d/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
rm -f packages.microsoft.gpg
sudo apt update
sudo apt install -y code
echo "-----------------------------------"
read -r -p "Do you wish to install some of my favourite VSCode extentions? (you can choose for each) [y/N]??" reply
case "$reply" in
[yY][eE][sS]|[yY] )
echo "Installing VSCode extensions"
code_install eamodio.gitlens
code_install coenraads.bracket-pair-colorizer-2
code_install ms-vscode.cpptools-extension-pack
code_install mhutchie.git-graph
code_install wayou.vscode-todo-highlight
code_install ms-python.python
code_install oderwat.indent-rainbow
code_install pkief.material-icon-theme
code_install esbenp.prettier-vscode
;;
* )
echo "Okay, no problem. :) Let's move on!"
echo "Skipping VSCode extensions"
;;
esac
;;
* )
echo "Okay, no problem. :) Let's move on!"
echo "Skipping VSCode"
;;
esac
echo "-------------------------------------------------"
read -r -p "Do you wish to install google chrome?? [y/N]" reply
case "$reply" in
[yY][eE][sS]|[yY] )
echo "Installing chrome"
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install ./google-chrome-stable_current_amd64.deb
;;
* )
echo "Okay, no problem. :) Let's move on!"
echo "Skipping google chrome"
;;
esac
echo "<-- cleaning -->"
sudo apt autoremove -y
echo "-------------------------------------------------"
echo "<-- Linux Development Setup Done -->"
echo "-------------------------------------------------"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment