.config/sway/scripts/checkUpdates.sh

This commit is contained in:
q3aql 2025-08-02 09:11:44 +02:00
parent 1566384225
commit 9cb85af1a1

View File

@ -1,21 +1,37 @@
#!/bin/bash
# Variables
checkupdates_file=/tmp/checkupdates
checkupdates_run="7200" # 2 hours
# checkupdates file init
if [ ! -f ${checkupdates_file} ] ; then
touch ${checkupdates_file}
echo "0" > ${checkupdates_file}
else
checkupdates_value=$(cat ${checkupdates_file})
checkupdates_incr=$(expr ${checkupdates_value} + 1)
echo "${checkupdates_incr}" > ${checkupdates_file}
fi
# Check updates on Arch Linux
# Note: Create cron on /etc/cron.d/checkupdates with the following lines:
# 0 * * * * root /usr/bin/pacman -Sy
# 30 * * * * root /usr/bin/pacman -Sy
checkupdate=$(cat ${checkupdates_file})
if [ -f /usr/bin/pacman ] ; then
if [ ${checkupdate} -ge ${checkupdates_run} ] ; then
sudo -A pacman -Syy > /dev/null 2>&1
echo "0" > ${checkupdates_file}
fi
num_packages=$(pacman -Qu | wc -l)
echo "${num_packages} "
# Check updates on Ubuntu/Debian/Devuan
# Note: Create cron on /etc/cron.d/checkupdates with the following lines:
# 0 * * * * root /usr/bin/aptitude update
# 30 * * * * root /usr/bin/aptitude update
elif [ -f /usr/bin/aptitude ] ; then
num_packages=$(aptitude search "~U" | wc -l)
elif [ -f /usr/bin/apt ] ; then
if [ ${checkupdate} -ge ${checkupdates_run} ] ; then
sudo -A apt-get update > /dev/null 2>&1
echo "0" > ${checkupdates_file}
fi
num_packages=$(apt list --upgradable 2>/dev/null | grep -c ^)
num_packages=$(expr ${num_packages} - 1)
echo "${num_packages} "
# Disable for other distros
else
echo " 0 "