#!/usr/bin/env bash set -e set -u set -o pipefail # Ensure running as root if [ $EUID != 0 ]; then sudo "$0" "$@" exit $? fi # Determining the current OS if [ -f /etc/os-release ]; then # freedesktop.org and systemd . /etc/os-release OS=$NAME VER=$VERSION_ID elif type lsb_release >/dev/null 2>&1; then # linuxbase.org OS=$(lsb_release -si) VER=$(lsb_release -sr) elif [ -f /etc/lsb-release ]; then # For some versions of Debian/Ubuntu without lsb_release command . /etc/lsb-release OS=$DISTRIB_ID VER=$DISTRIB_RELEASE elif [ -f /etc/debian_version ]; then # Older Debian/Ubuntu/etc. OS=Debian VER=$(cat /etc/debian_version) else # Fall back to uname, e.g. "Linux ", also works for BSD, etc. OS=$(uname -s) VER=$(uname -r) fi # Update commands per OS case $OS in Fedora\ Linux) dnf upgrade --refresh; flatpak update --assumeyes; ;; *) echo "Cannot update system with OS: " $OS ;; esac