#!/bin/sh

BOLD='\033[1m'
BLUE='\033[34m'
NC='\033[0m'
# This pkill is already handled by apt/pacman hooks:
# pkill -RTMIN+8 "${STATUSBAR:-dwmblocks}"

# pacman --------------------------------------------------------------------------
# create the file /usr/share/libalpm/hooks/statusbar.hook containing the following

# [Trigger]
# Operation = Upgrade
# Type = Package
# Target = *
# [Action]
# Description = Updating statusbar...
# When = PostTransaction
# Exec = /usr/bin/pkill -RTMIN+8 dwmblocks

printf "%b" "$BOLD${BLUE}Beginning upgrade.$NC\n"
if command -v paru 1>/dev/null 2>&1; then
    paru -Syu
elif command -v yay 1>/dev/null 2>&1; then
    yay -Syu
elif command -v pacman 1>/dev/null 2>&1; then
    pacman -Syu
fi

# apt -----------------------------------------------------------------------------
# create the file /etc/apt/apt.conf.d/80statusbar containing the following

# DPkg::Post-Invoke {"/usr/bin/pkill -RTMIN+8 dwmblocks";};

command -v apt 1>/dev/null 2>&1 && sudo apt upgrade



# void ----------------------------------------------------------------------------
# Void doesn't have post-install hooks at all, and including pkills in the package hooks isn't feasible
# Instead pkill is called in this script. Manually running updates will cause the status bar to desync

command -v xbps-install 1>/dev/null 2>&1 && sudo xbps-install -Syu && pkill -RTMIN+8 "${STATUSBAR:-dwmblocks}"

printf "%b" "$BOLD${BLUE}Updating arkenfox...$NC\n"
"$DOTFILES_DIR/.local/share/firefox/updater.sh" -s

printf "%b" "$BOLD${BLUE}Upgrade complete.\nPress <Enter> to exit window.\n"
read -r _
exit