68 lines
1.8 KiB
Plaintext
68 lines
1.8 KiB
Plaintext
|
#!/bin/sh
|
||
|
|
||
|
_target_file="/tmp/pacman-update-count"
|
||
|
# if set to 1 then also notify if no updates available
|
||
|
_notify_none=0
|
||
|
_error_code=0
|
||
|
_show_help=0
|
||
|
_hostname=$(hostname)
|
||
|
_config_file="$HOME/.config/notify-updates/notify-updates.config"
|
||
|
|
||
|
if ! [ -f "$_target_file" ] ;
|
||
|
then
|
||
|
echo "notify-updates: cannot access '$_target_file': File not found"
|
||
|
echo "notify-updates: try executing 'pacman-update-count.sh'"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
for _arg in "$@" ; do
|
||
|
if [ "$_arg" = "-h" ] || [ "$_arg" = "--help" ] ; then
|
||
|
_show_help=1
|
||
|
elif [ "$_arg" = "-n" ] || [ "$_arg" = "--notify-none" ] ; then
|
||
|
_notify_none=1
|
||
|
else
|
||
|
_error_code="5"
|
||
|
_show_help=1
|
||
|
echo "notify-updates: invalid option -- $_arg"
|
||
|
fi
|
||
|
done
|
||
|
|
||
|
if [ "$_show_help" -eq 1 ] ; then
|
||
|
echo "Options:"
|
||
|
echo " -h, --help show this message and exit"
|
||
|
echo " -n, --notify-none notify if no updates available"
|
||
|
exit "$_error_code"
|
||
|
fi
|
||
|
|
||
|
if [ "$_error_code" -gt 0 ] ; then
|
||
|
exit "$_error_code"
|
||
|
fi
|
||
|
|
||
|
# TODO use $XDG_CONFIG_HOME
|
||
|
if [ -f "$_config_file" ] ; then
|
||
|
# shellcheck source=notify-updates.config
|
||
|
. "$_config_file"
|
||
|
else
|
||
|
echo "notify-updates: warning - config file not found: $_config_file"
|
||
|
fi
|
||
|
|
||
|
if [ "$notify_if_none" = "true" ] ; then
|
||
|
_notify_none=1
|
||
|
elif [ "$notify_if_none" = "false" ] ; then
|
||
|
_notify_none=0
|
||
|
fi
|
||
|
|
||
|
_updates_available=$(cat $_target_file)
|
||
|
|
||
|
if [ "$_updates_available" -gt 0 ] ; then
|
||
|
_plural="s"
|
||
|
if [ "$_updates_available" -lt 2 ] ; then
|
||
|
_plural=""
|
||
|
fi
|
||
|
echo "Attention please: Update required for $_hostname: $_updates_available package$_plural" | festival --tts
|
||
|
notify-send "Update Notifier" "Update required: $_updates_available package$_plural"
|
||
|
elif [ "$_notify_none" -eq 1 ] ; then
|
||
|
echo "Attention please: No package updates required for $_hostname" | festival --tts
|
||
|
notify-send -u low "Update Notifier" "No updates required"
|
||
|
fi
|