tazpkg annotate tazpkg-notify @ rev 556

new tazpkg-notify, use notification menu and autoclose if nothing to do
author Christophe Lincoln <pankso@slitaz.org>
date Fri Mar 02 15:10:11 2012 +0100 (2012-03-02)
parents d8750abd87bd
children da3bd3962a3e
rev   line source
pankso@451 1 #!/bin/sh
pankso@451 2 #
pankso@451 3 # TazPKG Notify - Notification icon for Tazpkg packages. Recharging pkgs
paul@477 4 # list can be done automatically at boot, so notifies users if some
paul@477 5 # updates are available. Also notifies users if the packages list is too
pankso@451 6 # old and out-of-date or if no packages list found. This script should
paul@477 7 # be run by the WM autostart script or ~/.xsession and needs a systray to
paul@477 8 # sit in like in LXpanel or Tint2.
pankso@451 9 #
pankso@542 10 # Copyright (C) 2012 SliTaz GNU/Linux - GNU gpl v2
pankso@451 11 #
pankso@451 12 # Authors : Christophe Lincoln <pankso@slitaz.org>
pankso@451 13 #
pankso@451 14
pankso@556 15 # I18n
pankso@451 16 . /usr/bin/gettext.sh
pankso@451 17 TEXTDOMAIN='tazpkg-notify'
pankso@451 18 export TEXTDOMAIN
pankso@451 19
pankso@556 20 fifo=/tmp/$(basename $0).fifo
pankso@556 21 panel="http://tazpanel:82/pkgs.cgi"
pankso@556 22 db="/var/lib/tazpkg"
pankso@556 23 doc="/usr/share/doc/tazpkg/tazpkg.html"
pankso@556 24 installed=$(ls $db/installed | wc -l)
pankso@556 25 text="$(gettext "Installed packages") <b>$installed</b>"
pankso@556 26 [ -f "$db/packages.list" ] && mtime=$(find $db/packages.list -mtime +10;)
pankso@556 27 [ -f "$db/packages.up" ] && up=$(cat $db/packages.up | wc -l)
pankso@451 28
pankso@556 29 # Notification icon
pankso@556 30 listen() {
pankso@556 31 # Manage the I/O redirection from SHell
pankso@556 32 rm -f $fifo && mkfifo $fifo
pankso@556 33 # Attach a file descriptor
pankso@556 34 exec 3<> $fifo
pankso@556 35 # Notification icon
pankso@556 36 yad --notification --listen --image="tazpkg" \
pankso@556 37 --text="Checking packages lists - $text" <&3
pankso@556 38 # Clean-up
pankso@556 39 rm -f $fifo
pankso@451 40 }
pankso@451 41
pankso@556 42 # Notication menu (right click)
pankso@556 43 menu() {
pankso@556 44 cat << EOT
pankso@556 45 menu:\
pankso@556 46 $(gettext "My packages")!tazweb $panel?list!tazpkg|\
pankso@556 47 $(gettext "Recharge lists")!tazweb $panel?recharge!tazpkg-up|\
pankso@556 48 $(gettext "Check upgrade")!tazweb $panel?up!tazpkg-up|\
pankso@556 49 $(gettext "TazPKG SHell")!terminal -e tazpkg shell!xterm|\
pankso@556 50 $(gettext "TazPKG manual")!tazweb $doc!text-html|\
pankso@556 51 $(gettext "Close notification")!quit!gtk-close
pankso@556 52 EOT
pankso@451 53 }
pankso@451 54
pankso@451 55 case $1 in
pankso@556 56 usage|help|*-h)
pankso@556 57 gettext "Usage:"; echo " $(basename $0)" ;;
pankso@451 58 *)
pankso@556 59 # Sleep before displaying the notification icon and
pankso@556 60 # sleep to let user read the tooltips.
pankso@556 61 sleep 4
pankso@556 62 listen &
pankso@556 63 sleep 2
pankso@556 64 menu > $fifo
pankso@556 65 sleep 6
pankso@556 66 # Missing packages list
pankso@556 67 if [ ! -f $db/packages.list ]; then
pankso@556 68 tooltip=$(eval_gettext \
pankso@556 69 "No packages list found - \$text")
pankso@556 70 echo "action:tazweb $panel?recharge" > $fifo
pankso@556 71 echo "tooltip:$tooltip" > $fifo
pankso@556 72 echo "icon:tazpkg-up" > $fifo && exit 0
pankso@556 73 fi
pankso@556 74 # Too old packages list
pankso@556 75 if [ "$mtime" ]; then
pankso@556 76 tooltip=$(gettext "Your packages list is older than 10 days")
pankso@556 77 echo "action:tazweb $panel?recharge" > $fifo
pankso@556 78 echo "tooltip:$tooltip" > $fifo
pankso@556 79 echo "icon:tazpkg-up" > $fifo && exit 0
pankso@556 80 fi
pankso@556 81 # Avalaible upgrades
pankso@556 82 if [ "$up" -gt 0 ]; then
pankso@556 83 tooltip=$(eval_gettext \
pankso@556 84 "There are <b>\$up</b> upgradeable packages")
pankso@556 85 echo "action:tazweb $panel?up" > $fifo
pankso@556 86 echo "tooltip:$tooltip" > $fifo
pankso@556 87 echo "icon:tazpkg-up" > $fifo && exit 0
pankso@556 88 fi
pankso@556 89 # Nothing to do, close notification
pankso@556 90 tooltip=$(eval_gettext "System is up to date - \$text")
pankso@556 91 echo "tooltip:$tooltip" > $fifo
pankso@471 92 sleep 10
pankso@556 93 echo "quit" > $fifo ;;
pankso@451 94 esac
pankso@556 95 exit 0