Huge Updates
This commit is contained in:
30 files changed
+1421
-1260
No files matched your search
Executable
+164
@@ -0,0 +1,164 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Word of caution: changing this can break update module, be vigilant
|
||||
|
||||
check_arch_updates() {
|
||||
official_updates=0
|
||||
aur_updates=0
|
||||
flatpak_updates=0
|
||||
tooltip="" # Initialize tooltip variable
|
||||
|
||||
# Get the number of official updates using 'checkupdates'
|
||||
official_updates=$(checkupdates 2>/dev/null | wc -l)
|
||||
|
||||
if command -v paru &>/dev/null; then
|
||||
aur_helper="paru"
|
||||
else
|
||||
aur_helper="yay"
|
||||
fi
|
||||
|
||||
# Get the number of AUR updates using 'yay'
|
||||
aur_updates=$($aur_helper -Qum 2>/dev/null | wc -l)
|
||||
|
||||
# Calculate total updates
|
||||
total_updates=$((official_updates + aur_updates + flatpak_updates))
|
||||
|
||||
# Build the tooltip for official updates
|
||||
tooltip=" Official $official_updates\n AUR $aur_updates"
|
||||
|
||||
# Check if flatpak is installed
|
||||
if command -v flatpak &>/dev/null; then
|
||||
# Get the number of Flatpak updates if flatpak is installed
|
||||
flatpak_updates=$(flatpak remote-ls --updates | wc -l)
|
||||
|
||||
# Append Flatpak updates to the tooltip
|
||||
tooltip="$tooltip\n Flatpak $flatpak_updates"
|
||||
|
||||
# Recalculate total updates
|
||||
total_updates=$((official_updates + aur_updates + flatpak_updates))
|
||||
fi
|
||||
|
||||
# Output the result as a JSON object
|
||||
echo "{\"total\":\"$total_updates\", \"tooltip\":\"$tooltip\"}"
|
||||
}
|
||||
|
||||
check_ubuntu_updates() {
|
||||
official_updates=0
|
||||
flatpak_updates=0
|
||||
|
||||
# Check if flatpak is installed and get Flatpak updates if it is
|
||||
if command -v flatpak &>/dev/null; then
|
||||
flatpak_updates=$(flatpak remote-ls --updates | wc -l)
|
||||
# Always show Flatpak updates in the tooltip, even if there are none
|
||||
tooltip=" Official $official_updates\n Flatpak $flatpak_updates"
|
||||
else
|
||||
# If flatpak is not installed, only show official updates
|
||||
tooltip=" Official $official_updates"
|
||||
fi
|
||||
|
||||
# Get the number of official updates using 'apt-get'
|
||||
official_updates=$(apt-get -s -o Debug::NoLocking=true upgrade | grep -c ^Inst)
|
||||
|
||||
# Calculate total updates
|
||||
total_updates=$((official_updates + flatpak_updates))
|
||||
|
||||
# Output the result as a JSON object
|
||||
echo "{\"total\":\"$total_updates\", \"tooltip\":\"$tooltip\"}"
|
||||
}
|
||||
|
||||
check_fedora_updates() {
|
||||
official_updates=0
|
||||
flatpak_updates=0
|
||||
|
||||
# Get the number of official updates using 'dnf'
|
||||
official_updates=$(dnf check-update -q | grep -v '^Loaded plugins' | grep -v '^No match for' | wc -l)
|
||||
|
||||
# Calculate total updates
|
||||
total_updates=$((official_updates + flatpak_updates))
|
||||
|
||||
# Check if flatpak is installed and get Flatpak updates if it is
|
||||
if command -v flatpak &>/dev/null; then
|
||||
flatpak_updates=$(flatpak remote-ls --updates | wc -l)
|
||||
# Always show Flatpak updates in the tooltip, even if there are none
|
||||
tooltip=" Official $official_updates\n Flatpak $flatpak_updates"
|
||||
else
|
||||
# If flatpak is not installed, only show official updates
|
||||
tooltip=" Official $official_updates"
|
||||
fi
|
||||
|
||||
# Output the result as a JSON object
|
||||
echo "{\"total\":\"$total_updates\", \"tooltip\":\"$tooltip\"}"
|
||||
}
|
||||
|
||||
check_opensuse_updates() {
|
||||
official_updates=0
|
||||
flatpak_updates=0
|
||||
|
||||
# Check if flatpak is installed and get Flatpak updates if it is
|
||||
if command -v flatpak &>/dev/null; then
|
||||
flatpak_updates=$(flatpak remote-ls --updates | wc -l)
|
||||
fi
|
||||
|
||||
# Get the number of official updates using 'dnf'
|
||||
official_updates=$(zypper lu | wc -l)
|
||||
|
||||
# Calculate total updates
|
||||
total_updates=$((official_updates + flatpak_updates))
|
||||
|
||||
# Check if flatpak is installed and get Flatpak updates if it is
|
||||
if command -v flatpak &>/dev/null; then
|
||||
flatpak_updates=$(flatpak remote-ls --updates | wc -l)
|
||||
# Always show Flatpak updates in the tooltip, even if there are none
|
||||
tooltip=" Official $official_updates\n Flatpak $flatpak_updates"
|
||||
else
|
||||
# If flatpak is not installed, only show official updates
|
||||
tooltip=" Official $official_updates"
|
||||
fi
|
||||
|
||||
# Output the result as a JSON object
|
||||
echo "{\"total\":\"$total_updates\", \"tooltip\":\"$tooltip\"}"
|
||||
}
|
||||
|
||||
update_arch() {
|
||||
command="
|
||||
fastfetch
|
||||
yay -Syu
|
||||
read -n 1 -p 'Press any key to continue...'
|
||||
"
|
||||
kitty --title systemupdate sh -c "${command}"
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
-arch)
|
||||
if [ -z "$2" ]; then # If second argument is null (not provided)
|
||||
check_arch_updates
|
||||
else
|
||||
update_arch
|
||||
fi
|
||||
;;
|
||||
-ubuntu)
|
||||
if [ -z "$2" ]; then # If second argument is null (not provided)
|
||||
check_ubuntu_updates
|
||||
else
|
||||
update_ubuntu
|
||||
fi
|
||||
;;
|
||||
-fedora)
|
||||
if [ -z "$2" ]; then # If second argument is null (not provided)
|
||||
check_fedora_updates
|
||||
else
|
||||
update_fedora
|
||||
fi
|
||||
;;
|
||||
-suse)
|
||||
if [ -z "$2" ]; then # If second argument is null (not provided)
|
||||
check_opensuse_updates
|
||||
else
|
||||
update_arch
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 [-arch|-ubuntu|-fedora|-suse] [up (optional)]"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
Reference in new issue
Block a user