#!/bin/bash set -e # Run the "I'm too lazy to fix it myself all in one" script if [ "$1" == "remote" ]; then echo "This will reset a lot of configurations to default ones - it is intended to be a oneclick fix for all kind of update issues. 🛑" echo "Are you sure that you want to execute the remote update? (y/n)" echo "Otherwise we will proceed with the regular update." read yusure if [ $yusure = "y" ]; then exec sudo bash -c "VERSION=1 . <(wget -qO- https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-common-settings/-/snippets/2147440/raw/main/remote-update) \"$2\"" fi fi # Check for AUR helper if [ -x /usr/bin/paru ] && [[ $EUID -ne 0 ]]; then upd_cmd="paru -Su" echo "Detected Paru, using it to update the system.." elif [ -x /usr/bin/yay ] && [[ $EUID -ne 0 ]]; then upd_cmd="yay -Su" echo "Detected Yay, using it to update the system.." else upd_cmd="sudo pacman -Su" if [[ $EUID -ne 0 ]]; then echo "No AUR helper installed, using Pacman to update.." else echo "Executed as root, using Pacman to update.." fi fi if [ -x /usr/bin/reflector ]; then # Refresh mirrorlist echo "Refreshing mirrorlists.." sudo reflector --latest 5 --age 2 --fastest 5 --protocol https --sort rate --save /etc/pacman.d/mirrorlist && cat /etc/pacman.d/mirrorlist || false fi # Check for keyring update & update as needed echo "Checking for keyring update before starting full system update.." if pacman -Qq blackarch-keyring &> /dev/null; then sudo pacman -Sy archlinux-keyring blackarch-keyring chaotic-keyring --needed && $upd_cmd || false else sudo pacman -Sy archlinux-keyring chaotic-keyring --needed && $upd_cmd || false fi echo "" # Update mlocate index if [ -x /usr/bin/locate ]; then echo "Updating mlocate index.." sudo updatedb fi # Update fish completions if [ -x /usr/bin/fish ]; then if [[ $EUID -ne 0 ]]; then fish -c fish_update_completions elif [ ! -z "$SUDO_UID" ]; then sudo -u \#$SUDO_UID fish -c fish_update_completions fi fi echo "" echo "System updated! 🐧"