clear
if [ "$2" == 'check' ]; then
    echo -e "${CSS_BOLDBRIGHT}📦 $MSG_GEN_CHECKUPDS${CSS_RESET}"
    hr
    check_updates "system" "force"
    hr "success" 3
    echo -e "${CSS_GREENB}█ $MSG_GEN_PROCCOMP ${CSS_RESET}"
    hr "success"
    read -p "$MSG_GEN_PRESSENTER..."
    exit 0
fi

shift $((OPTIND-1))
up_eo=0
up_fp=0
up_sn=0
up_db=0
up_fw=0
up_cu=0
up_chk=0

for arg in "$@"; do
    if [[ "$arg" == *"="* ]]; then
        key="${arg%%=*}"
        value="${arg#*=}"
        declare "$key=$value"
    fi
done
ccache_eopkg=0
ccache_flatpak=0
ccache_updates=0

hr "danger" 3
echo -e "${CSS_BOLDBRIGHT}📦 $MSG_UPD_TTLSTART${CSS_RESET}"

if [ "$up_eo" -eq 1 ]; then
    ccache_eopkg=1
    ccache_updates=1
    hr
    echo -e "${CSS_CYANB}█ EOPKG ${CSS_RESET}\n"
    sudo eopkg up $SS_ASSUMEYES
fi
if [ "$up_fp" -eq 1 ] && [ "$HAS_FLATPAK" -eq 1 ]; then
    ccache_flatpak=1
    ccache_updates=1
    hr
    echo -e "${CSS_BLUEB}█ FLATPAK ${CSS_RESET}\n"
    flatpak update -y
fi
if [ "$up_sn" -eq 1 ] && [ "$HAS_SNAP" -eq 1 ]; then
    hr
    echo -e "${CSS_REDB}█ SNAP ${CSS_RESET}\n"
    sudo snap refresh
fi
if [ "$up_db" -eq 1 ] && [ "$HAS_DISTROBOX" -eq 1 ]; then
    hr
    echo -e "${CSS_YELLOWB}█ DISTROBOX ${CSS_RESET}\n"
    distrobox upgrade -a
fi
if [ "$up_cu" -eq 1 ] && [ "$HAS_CUSTOM" -eq 1 ]; then
    hr
    echo -e "${CSS_REDB}█ $MSG_UPD_CUSTOM ${CSS_RESET}\n"
    sh "$SS_CUST_UPDATE"
fi

if [ "$up_fw" -eq 1 ] && [ "$HAS_FIRMWARE" -eq 1 ]; then
    hr
    echo -e "${CSS_YELLOWB}█ FIRMWARE ${CSS_RESET}\n"
    sudo fwupdmgr refresh --force
    sudo fwupdmgr get-updates -y > /dev/null
    sudo fwupdmgr update
fi

if [ "$ccache_updates" -eq 1 ]; then
    hr
    check_updates "system" &
    if [ "$ccache_eopkg" -eq 1 ]; then
        eopkg_cache "force"
    fi
    if [ "$ccache_flatpak" -eq 1 ]; then
        fp_cache "force"
    fi
fi

hr "success" 3
echo -e "${CSS_GREENB}█ $MSG_GEN_PROCCOMP ${CSS_RESET}"
hr "success"
read -n 1 -p "$MSG_GEN_PRESSENTERREB: " PUCHOICE
case "$PUCHOICE" in
  # This matches either 'R' or 'r' (case-insensitive)
  [Rr])
      echo -e "\n\n${CSS_BOLDBRIGHT}█ $MSG_GEB_REBOOTIN... ${CSS_RESET}"
      RBCNT=3
      for (( i=$RBCNT; i>0; i-- )); do
          echo -ne "${CSS_BOLDBRIGHT}█ $i ${CSS_RESET}\r"
          sleep 1
      done
      reboot
      ;;
  *)
      exit 0
      ;;
  esac
