pull-dotfiles() { current_dir=$PWD echo "\033[32;1m=== Updating dotfiles ===\033[0m" cd ~/.config/dotfiles && git pull echo "\033[32;1m=== Updating oh-my-zsh ===\033[0m" cd ~/.config/oh-my-zsh && git pull cd $current_dir } update() { echo "\033[32;1m=== Starting the update, please enter your password ===\033[0m" # Ask for sudo right now sudo true if [ $? -ne 0 ]; then echo "Could not get sudo..." exit 1 fi echo "\033[32;1m=== Updating system ===\033[0m" # Debian based systems command -v apt > /dev/null 2>&1 if [ $? -eq 0 ]; then sudo apt update -y if [ $? -eq 0 ]; then sudo apt upgrade -y if [ $? -eq 0 ]; then sudo apt autoremove -y fi fi fi # Archlinux based systems command -v yaourt > /dev/null 2>&1 if [ $? -eq 0 ]; then yaourt -Syu else command -v pacman > /dev/null 2>&1 if [ $? -eq 0 ]; then sudo pacman -Syu fi fi # Fedora based systems command -v dnf > /dev/null 2>&1 if [ $? -eq 0 ]; then dnf upgrade fi # Update rust if installed command -v rustup > /dev/null 2>&1 if [ $? -eq 0 ]; then echo "\033[32;1m=== Updating rustup ===\033[0m" rustup self update echo "\033[32;1m=== Updating rust ===\033[0m" rustup update cargo install-update --help > /dev/null 2>&1 if [ $? -eq 0 ]; then echo "\033[32;1m=== Updating rust packages ===\033[0m" cargo install-update -ag fi fi # Update the dotfiles pull-dotfiles echo "\033[32;1m=== Update finished ===\033[0m" }