tazpkg annotate tazpkg-notify @ rev 603

**tazpkg**: add common output functions: action, title, footer; change the way category translate, localized categories can include spaces; implement boldify, emsg & confirm functions from new libtaz; rename log function to log_pkg; fix check_root invocation; fix convert_rpm function; implement plural i18n messages; list-mirror: --text|--txt|--raw|* produces same output; extract: check for errors in final message; list-config --box: do we need it?; repack-config: date/time in receipt in local format; '--help-up' changed to 'help-up' due to error with new libtaz. **tazpkg-box**: add i18n preamble; fix actions. **tazpkg-notify**: implement plural. **Makefile**: support new functions & tazpkg-box. **po/**: Make pot & msgmerge. Add Russian translation. Add Spanish translation for tazpkg-notify (thanks Kevin Fabian Quintero).
author Aleksej Bobylev <al.bobylev@gmail.com>
date Sat Jun 23 00:51:57 2012 +0000 (2012-06-23)
parents 7d8d81c885c3
children 5317ffe7bfbb
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)
al@603 25 text="$(eval_ngettext \
al@603 26 '<b>$installed</b> installed package' \
al@603 27 '<b>$installed</b> installed packages' $installed)"
pankso@560 28 icon="/usr/share/pixmaps/tazpkg.png"
pankso@556 29 [ -f "$db/packages.list" ] && mtime=$(find $db/packages.list -mtime +10;)
pankso@556 30 [ -f "$db/packages.up" ] && up=$(cat $db/packages.up | wc -l)
pankso@451 31
pankso@556 32 # Notification icon
pankso@556 33 listen() {
pankso@556 34 # Manage the I/O redirection from SHell
al@603 35 rm -f $fifo && mkfifo $fifo
pankso@556 36 # Attach a file descriptor
al@603 37 exec 3<> $fifo
pankso@556 38 # Notification icon
pankso@560 39 yad --notification --listen --image=$icon \
al@603 40 --text="$(eval_gettext 'Checking packages lists - $text')" <&3
pankso@556 41 # Clean-up
pankso@556 42 rm -f $fifo
pankso@451 43 }
pankso@451 44
pankso@556 45 # Notication menu (right click)
pankso@556 46 menu() {
pankso@556 47 cat << EOT
pankso@556 48 menu:\
pankso@566 49 $(gettext "My packages")!tazweb $panel?list!tazpkg|\
pankso@556 50 $(gettext "Recharge lists")!tazweb $panel?recharge!tazpkg-up|\
pankso@556 51 $(gettext "Check upgrade")!tazweb $panel?up!tazpkg-up|\
pankso@556 52 $(gettext "TazPKG SHell")!terminal -e tazpkg shell!xterm|\
pankso@556 53 $(gettext "TazPKG manual")!tazweb $doc!text-html|\
pankso@556 54 $(gettext "Close notification")!quit!gtk-close
pankso@556 55 EOT
pankso@451 56 }
pankso@451 57
pankso@451 58 case $1 in
pankso@556 59 usage|help|*-h)
pankso@556 60 gettext "Usage:"; echo " $(basename $0)" ;;
pankso@451 61 *)
pankso@556 62 # Sleep before displaying the notification icon and
pankso@556 63 # sleep to let user read the tooltips.
pankso@556 64 sleep 4
pankso@556 65 listen &
pankso@556 66 sleep 2
pankso@556 67 menu > $fifo
pankso@556 68 sleep 6
pankso@556 69 # Missing packages list
pankso@556 70 if [ ! -f $db/packages.list ]; then
al@603 71 tooltip=$(eval_gettext 'No packages list found - $text')
pankso@556 72 echo "action:tazweb $panel?recharge" > $fifo
pankso@556 73 echo "tooltip:$tooltip" > $fifo
pankso@556 74 echo "icon:tazpkg-up" > $fifo && exit 0
pankso@556 75 fi
pankso@556 76 # Too old packages list
pankso@556 77 if [ "$mtime" ]; then
pankso@556 78 tooltip=$(gettext "Your packages list is older than 10 days")
pankso@556 79 echo "action:tazweb $panel?recharge" > $fifo
pankso@556 80 echo "tooltip:$tooltip" > $fifo
pankso@556 81 echo "icon:tazpkg-up" > $fifo && exit 0
pankso@556 82 fi
paul@579 83 # Available upgrades
pankso@556 84 if [ "$up" -gt 0 ]; then
al@603 85 tooltip=$(eval_ngettext \
al@603 86 'There is <b>$up</b> upgradeable package' \
al@603 87 'There are <b>$up</b> upgradeable packages' $up)
pankso@556 88 echo "action:tazweb $panel?up" > $fifo
pankso@556 89 echo "tooltip:$tooltip" > $fifo
pankso@556 90 echo "icon:tazpkg-up" > $fifo && exit 0
pankso@556 91 fi
pankso@556 92 # Nothing to do, close notification
al@603 93 tooltip=$(eval_gettext 'System is up to date - $text')
pankso@556 94 echo "tooltip:$tooltip" > $fifo
pankso@471 95 sleep 10
pankso@556 96 echo "quit" > $fifo ;;
pankso@451 97 esac
pankso@556 98 exit 0