#!/usr/bin/env dash

if [ "$(uname -o)" = "Android" ]; then
    pkg upgrade
elif [ "$(uname -o)" = "GNU/Linux" ]; then
    [ "$(lsb_release -si)" = "Artix" ] && paru
    [ "$(lsb_release -si)" = "Fedora" ] && sudo dnf upgrade

    if [ "$(lsb_release -si)" = "Debian" ] || [ "$(lsb_release -si)" = "Ubuntu" ]; then
        sudo apt update
        echo
        sudo apt upgrade --purge
        echo
        sudo apt autoremove --purge --yes
    fi
fi

command -v flatpak >/dev/null 2>&1 &&
    { echo; flatpak update; }
command -v npm >/dev/null 2>&1 &&
    { echo; npm update --location="global"; }
command -v rustup >/dev/null 2>&1 &&
    { echo; rustup update; }
command -v nvim >/dev/null 2>&1 &&
    { echo; nvim --headless +PlugUpdate +PlugUpgrade +qa; echo; }
command -v docker >/dev/null 2>&1 &&
    [ "$(docker images | wc -l)" -gt 1 ] &&
    { echo; docker images |
        awk '(NR>1) && ($2!~/none/) {print $1":"$2}' |
        xargs -l docker pull; }

echo
zsh -ic "antidote update && echo && git -C $(dirname -- "$(readlink -e "$0")") pull"