#!/bin/bash # Get normal user name LOCAL_USER=`users | sed -e 's/root *//' | cut -d' ' -f 1` PIDFILE=/var/run/qubes/dom0-update-notification.pid NOTIFY_ICON=/usr/share/qubes/icons/dom0-update-avail.svg UPDATES_STAT_FILE=/var/lib/qubes/updates/dom0-updates-available # Do not allow multiple instances [ -r $PIDFILE ] && kill -0 `cat $PIDFILE` && exit 0 # Teoretically the race can happen here, but this tool will be run once a few # hours, so no real problem echo $$ > $PIDFILE trap "rm $PIDFILE" EXIT # If no updates available - exit here qubes-dom0-update --check-only >/dev/null && exit RETCODE=$? if [ "$RETCODE" -ne 100 ]; then echo "ERROR: Error checking for updates" >&2 exit $RETCODE fi if [ -z "$LOCAL_USER" ]; then echo "ERROR: no user logged in, cannot nofity about updates" >&2 exit 1 fi # Touch stat file for qubes-manager touch $UPDATES_STAT_FILE # Notify about updates using system tray su -c 'DISPLAY=:0 zenity --notification --window-icon=$NOTIFY_ICON --text="Qubes dom0 updates available."' $LOCAL_USER su -c 'DISPLAY=:0 zenity --question --title="Qubes Dom0 updates" \ --text="There are updates for dom0 available, do you want to download them now?"' $LOCAL_USER || exit 0 su -c "DISPLAY=:0 qubes-dom0-update --gui" $LOCAL_USER # Check if user installed updates yum -q check-updates && rm $UPDATES_STAT_FILE