From 3e5e327d440c7b3638036aa9a889d5aa08b44ce2 Mon Sep 17 00:00:00 2001 From: doerofthedo Date: Fri, 30 Jan 2026 20:26:10 +0200 Subject: [PATCH] Add upgradeall script for package management This script updates package lists and installs any deferred or kept-back packages using apt. --- upgradeall | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 upgradeall diff --git a/upgradeall b/upgradeall new file mode 100644 index 0000000..7c7d779 --- /dev/null +++ b/upgradeall @@ -0,0 +1,44 @@ +#!/bin/bash + +set -e + +RED='\e[31m' +GREEN='\e[32m' +YELLOW='\e[33m' +BLUE='\e[34m' +RESET='\e[0m' + +if [ "$EUID" -ne 0 ]; then + echo -e "${RED}Please run this script as root or using sudo.${RESET}" + exit 1 +fi + +echo -e "${BLUE}Updating package lists...${RESET}" +apt update + +deferred_packages=$( + apt upgrade 2>/dev/null | awk ' + /The following upgrades have been deferred/ \ + || /The following packages have been kept back/ { flag=1; next } + flag && /^[0-9]+ upgraded,/ { flag=0 } + flag && NF { print } + ' +) + +deferred_packages=$(echo "$deferred_packages" \ + | tr -s '[:space:]' ' ' \ + | sed 's/^ *//;s/ *$//' \ + | tr ' ' '\n' | sort -u | tr '\n' ' ' \ +) + +if [ -z "$deferred_packages" ]; then + echo -e "${GREEN}No deferred or kept-back packages found.${RESET}" + exit 0 +fi + +echo -e "${YELLOW}The following deferred packages will be installed:${RESET}" +echo -e "${YELLOW}$deferred_packages${RESET}" + +echo -e "${BLUE}Installing packages: $deferred_packages...${RESET}" +apt-get --with-new-pkgs upgrade -y $deferred_packages +echo -e "${GREEN}Installation complete.${RESET}"