diff --git a/.config/sway/scripts/checkUpdates.sh b/.config/sway/scripts/checkUpdates.sh index 59ae3f2..15635ae 100755 --- a/.config/sway/scripts/checkUpdates.sh +++ b/.config/sway/scripts/checkUpdates.sh @@ -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 "