setup-cockpit/main_install.sh

234 lines
4.4 KiB
Bash
Executable file

#!/bin/bash
## Script to automate the setting up of my working environment.
## flyingscorpio
RED=$(tput setaf 1)
GREEN=$(tput setaf 2)
ORANGE=$(tput setaf 3)
NC=$(tput sgr0)
export RED
export GREEN
export ORANGE
export NC
separator() {
exit_status=$?
if [ $exit_status -eq 0 ]; then
echo -n "${GREEN}"
else
echo -n "${RED}"
fi
echo "========================================"
echo "${NC}"
}
BASE_DIR="$PWD"
export BASE_DIR
# Define OS {{{
OS='none'
os_release=$(cat /etc/os-release*)
case ${os_release,,} in
*debian* )
OS='debian'
echo "You are using Debian"
;;
*ubuntu* )
OS='debian'
echo "You are using Ubuntu"
;;
*arch* )
OS='arch'
echo "You are using Arch-Linux"
;;
*manjaro* )
OS='arch'
echo "You are using Manjaro"
;;
* )
echo "${ORANGE}Unable to determine OS${NC}"
echo "Which OS are you using?"
select OS in 'Debian / Ubuntu' 'Arch / Manjaro'; do
case $OS in
'Debian / Ubuntu' ) OS='debian'; break;;
'Arch / Manjaro' ) OS='arch'; break;;
esac
done
echo "Using $OS"
esac
export OS
# }}}
# Handle args {{{
OVERWRITE='false'
UPDATE='false'
if [ "$1" = '-o' ] || [ "$1" = '--overwrite' ] || [ "$2" = '-o' ] || [ "$2" = '--overwrite' ]; then
echo "${ORANGE}You agree to overwrite preexisting files!${NC}"
OVERWRITE='true'
fi
if [ "$1" = '-u' ] || [ "$1" = '--update' ] || [ "$2" = '-u' ] || [ "$2" = '--update' ]; then
echo "${ORANGE}Set to update plugins!${NC}"
UPDATE='true'
fi
if [ "$1" = '-ou' ] || [ "$1" = '-uo' ]; then
echo "${ORANGE}Both options were set.${NC}"
OVERWRITE='true'
UPDATE='true'
fi
export OVERWRITE
export UPDATE
# }}}
# Install scripts {{{
echo "Installing scripts..."
if [ "$OS" = 'debian' ]; then
/bin/bash "$BASE_DIR"/installation_scripts/debian_based_installs.sh
elif [ "$OS" = 'arch' ]; then
/bin/bash "$BASE_DIR"/installation_scripts/arch_based_installs.sh
else
echo "${RED} Didn't receive correct OS information, quitting...${NC}"
exit 1
fi
separator
# }}}
# Update vim configuration {{{
echo "Setting up configuration for Vim"
/bin/bash "$BASE_DIR"/installation_scripts/vim_update.sh
separator
# }}}
# Configure ProtonVPN {{{
echo "Configuring ProtonVPN..."
sudo protonvpn init && sudo protonvpn c --cc CH
separator
# }}}
# Update .bashrc {{{
echo "Updating .bashrc..."
if [ ! -L ~/.bashrc ]; then
ln -rs "$BASE_DIR"/dotfiles/bashrc ~/.bashrc 2> /dev/null
fi
separator
# }}}
# Update .bash_aliases {{{
echo "Updating .bash_aliases..."
if [ ! -L ~/.bash_aliases ]; then
ln -rs "$BASE_DIR"/dotfiles/bash_aliases ~/.bash_aliases 2> /dev/null
fi
separator
# }}}
# Configure Git {{{
echo "Configuring Git..."
git config --global user.name "$USER@$(uname -n)"
git config --global user.email "tfranken@protonmail.com"
git config --global alias.ci "commit"
git config --global alias.co "checkout"
git config --global alias.st "status"
git config --global alias.br "branch"
separator
# }}}
# Install Rust {{{
echo "Installing Rust..."
if rustc --version; then
echo "${GREEN}Rust is already intalled${NC}"
if [ "$UPDATE" = 'true' ]; then
echo "Updading..."
rustup update
fi
else
if curl https://sh.rustup.rs -sSf | sh; then
echo "${GREEN}Successfully installed Rust${NC}"
else
echo "${ORANGE}There was a problem while installing Rust${NC}"
fi
fi
separator
# }}}
# Clone bash-git-prompt {{{
if [ -e ~/.bash-git-prompt ]; then
echo "${GREEN}Found existing bash-git-prompt.${NC}"
if [ "$UPDATE" = 'true' ]; then
echo "Updating..."
cd ~/.bash-git-prompt && git pull
fi
else
echo "${ORANGE}Cloning bash-git-prompt...${NC}"
git clone https://github.com/magicmonty/bash-git-prompt.git ~/.bash-git-prompt --depth=1
fi
separator
# }}}
# Add MIME type for reading .md files in Firefox (need to add extension too) {{{
echo "Adding MIME type for .md files in Firefox..."
echo "${ORANGE}Remember to install the Firefox extension for it to work${NC}"
mkdir -p ~/.local/share/mime/packages
echo "<?xml version=\"1.0\"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
<mime-type type=\"text/plain\">
<glob pattern=\"*.md\"/>
<glob pattern=\"*.mkd\"/>
<glob pattern=\"*.markdown\"/>
</mime-type>
</mime-info>" > ~/.local/share/mime/packages/text-markdown.xml
update-mime-database ~/.local/share/mime
separator
# }}}
# Clone projects {{{
echo "Cloning projects..."
/bin/bash "$BASE_DIR"/installation_scripts/clone_projects.sh
separator
# }}}