tazpkg annotate tazpkg-notify @ rev 585
let install more than one package at once: tazpkg -gi pkg1 pkg2 pkg3 --opt1 --opt2
author | Christophe Lincoln <pankso@slitaz.org> |
---|---|
date | Thu Apr 12 17:18:55 2012 +0200 (2012-04-12) |
parents | 11d71c5ac20a |
children | de952705379e |
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" |
mojo@577 | 23 doc="file:///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@560 | 26 icon="/usr/share/pixmaps/tazpkg.png" |
pankso@556 | 27 [ -f "$db/packages.list" ] && mtime=$(find $db/packages.list -mtime +10;) |
pankso@556 | 28 [ -f "$db/packages.up" ] && up=$(cat $db/packages.up | wc -l) |
pankso@451 | 29 |
pankso@556 | 30 # Notification icon |
pankso@556 | 31 listen() { |
pankso@556 | 32 # Manage the I/O redirection from SHell |
pankso@556 | 33 rm -f $fifo && mkfifo $fifo |
pankso@556 | 34 # Attach a file descriptor |
pankso@556 | 35 exec 3<> $fifo |
pankso@556 | 36 # Notification icon |
pankso@560 | 37 yad --notification --listen --image=$icon \ |
pankso@565 | 38 --text="$(gettext "Checking packages lists") - $text" <&3 |
pankso@556 | 39 # Clean-up |
pankso@556 | 40 rm -f $fifo |
pankso@451 | 41 } |
pankso@451 | 42 |
pankso@556 | 43 # Notication menu (right click) |
pankso@556 | 44 menu() { |
pankso@556 | 45 cat << EOT |
pankso@556 | 46 menu:\ |
pankso@566 | 47 $(gettext "My packages")!tazweb $panel?list!tazpkg|\ |
pankso@556 | 48 $(gettext "Recharge lists")!tazweb $panel?recharge!tazpkg-up|\ |
pankso@556 | 49 $(gettext "Check upgrade")!tazweb $panel?up!tazpkg-up|\ |
pankso@556 | 50 $(gettext "TazPKG SHell")!terminal -e tazpkg shell!xterm|\ |
pankso@556 | 51 $(gettext "TazPKG manual")!tazweb $doc!text-html|\ |
pankso@556 | 52 $(gettext "Close notification")!quit!gtk-close |
pankso@556 | 53 EOT |
pankso@451 | 54 } |
pankso@451 | 55 |
pankso@451 | 56 case $1 in |
pankso@556 | 57 usage|help|*-h) |
pankso@556 | 58 gettext "Usage:"; echo " $(basename $0)" ;; |
pankso@451 | 59 *) |
pankso@556 | 60 # Sleep before displaying the notification icon and |
pankso@556 | 61 # sleep to let user read the tooltips. |
pankso@556 | 62 sleep 4 |
pankso@556 | 63 listen & |
pankso@556 | 64 sleep 2 |
pankso@556 | 65 menu > $fifo |
pankso@556 | 66 sleep 6 |
pankso@556 | 67 # Missing packages list |
pankso@556 | 68 if [ ! -f $db/packages.list ]; then |
pankso@556 | 69 tooltip=$(eval_gettext \ |
pankso@556 | 70 "No packages list found - \$text") |
pankso@556 | 71 echo "action:tazweb $panel?recharge" > $fifo |
pankso@556 | 72 echo "tooltip:$tooltip" > $fifo |
pankso@556 | 73 echo "icon:tazpkg-up" > $fifo && exit 0 |
pankso@556 | 74 fi |
pankso@556 | 75 # Too old packages list |
pankso@556 | 76 if [ "$mtime" ]; then |
pankso@556 | 77 tooltip=$(gettext "Your packages list is older than 10 days") |
pankso@556 | 78 echo "action:tazweb $panel?recharge" > $fifo |
pankso@556 | 79 echo "tooltip:$tooltip" > $fifo |
pankso@556 | 80 echo "icon:tazpkg-up" > $fifo && exit 0 |
pankso@556 | 81 fi |
paul@579 | 82 # Available upgrades |
pankso@556 | 83 if [ "$up" -gt 0 ]; then |
pankso@556 | 84 tooltip=$(eval_gettext \ |
pankso@556 | 85 "There are <b>\$up</b> upgradeable packages") |
pankso@556 | 86 echo "action:tazweb $panel?up" > $fifo |
pankso@556 | 87 echo "tooltip:$tooltip" > $fifo |
pankso@556 | 88 echo "icon:tazpkg-up" > $fifo && exit 0 |
pankso@556 | 89 fi |
pankso@556 | 90 # Nothing to do, close notification |
pankso@556 | 91 tooltip=$(eval_gettext "System is up to date - \$text") |
pankso@556 | 92 echo "tooltip:$tooltip" > $fifo |
pankso@471 | 93 sleep 10 |
pankso@556 | 94 echo "quit" > $fifo ;; |
pankso@451 | 95 esac |
pankso@556 | 96 exit 0 |