Set environment variable of last successful full sys update datetime
Set environment variable of last successful full sys update datetime
Hello everyone! I want to write a short script to let me know if there has been more than 3 days since the last full system update whenever I open a terminal (run from .zshrc). Ive got something cobbled together, but sadly it only checks for the last full system update from pacman directly because of the way it looks at the pacman logs.
My question is, how can I make it so that if EITHER pacman directly or yay runs a full system update, it will update something like a persisitent environment variable with a UNIX timestamp?
I've also considered writing a hook to run after pacman fully updates the system since yay runs pacman under the hood anyway, but I can't figure out how to make the hook recognise if it was a successful full system update.
Here is what I have so far:
bash
#!/bin/zsh last_upgrade_date=$(grep -m 1 'full system upgrade' /var/log/pacman.log | cut -d ' ' -f 1 | tr -d '[]') last_upgrade_sec=$(date --date="$last_upgrade_date" +%s) # Convert to UNIX timestamp last_upgrade_sec=$(date -d "$last_upgrade_date" +%s) now_sec=$(date +%s) days_since=$(( (now_sec - last_upgrade_sec) / 86400 )) if (( days_since > 3 )); then echo "Days since last update: $days_since day(s)" >> /dev/tty fi # Kernel version check running_kernel=$(uname -r) installed_kernel=$(pacman -Q linux | awk '{print $2}' | cut -d '-' -f1 | cut -d '.' -f1,2,3) running_kernel_base=$(echo "$running_kernel" | cut -d '-' -f1) if [[ "$running_kernel_base" != "$installed_kernel" ]]; then echo "Kernel mismatch detected. Reboot recommended." >> /dev/tty fi
Thanks in advance!