#!/bin/bash

# blob:summary=Update system and AUR packages
# blob:args=[--no-confirm]
# blob:requires-sudo=true

set -e

confirm=true
[[ ${1-} == --no-confirm ]] && confirm=false

if [[ $confirm == true ]]; then
  read -rp "Update system and AUR packages? [y/N] " answer
  [[ $answer == [yY] ]] || exit 0
fi

blob-sudo-keepalive

echo "Refreshing the keyring..."
sudo pacman -Sy --needed --noconfirm archlinux-keyring

echo "Updating system packages..."
sudo pacman -Syu --noconfirm

if blob-cmd-present yay && blob-pkg-aur; then
  echo "Updating AUR packages..."
  yay -Sua --noconfirm
fi

orphans=$(pacman -Qtdq 2>/dev/null || true)
if [[ -n $orphans ]]; then
  echo "Removing orphaned packages..."
  printf '%s\n' "$orphans" | sudo pacman -Rns --noconfirm -
fi

blob-notify-send "Update complete" "System and AUR packages are up to date"
