tazpkg annotate tazpkg-notify @ rev 819

tazpkg: re-write "desc" function to use all available sorts of descriptions (installed, mirrored, short, long, localized)
author Aleksej Bobylev <al.bobylev@gmail.com>
date Fri Jul 24 15:11:32 2015 +0300 (2015-07-24)
parents 0bda827841cd
children a02e36d44d06
rev   line source
pankso@451 1 #!/bin/sh
pankso@451 2 #
al@633 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 #
al@707 10 # Copyright (C) 2012-2014 SliTaz GNU/Linux - GNU GPL v2
pankso@451 11 #
pankso@451 12 # Authors : Christophe Lincoln <pankso@slitaz.org>
pankso@451 13 #
pankso@451 14
al@710 15 . /lib/libtaz.sh
al@710 16 . /etc/slitaz/slitaz.conf
al@710 17
pankso@556 18 # I18n
al@633 19 export TEXTDOMAIN='tazpkg'
al@710 20 _() { local T="$1"; shift; printf "$(gettext "$T")" "$@"; echo; }
al@710 21 _n() { local T="$1"; shift; printf "$(gettext "$T")" "$@"; }
al@710 22 _p() {
al@710 23 local S="$1" P="$2" N="$3"; shift; shift; shift;
al@710 24 printf "$(ngettext "$S" "$P" "$N")" "$@"; }
al@710 25
pankso@451 26
pankso@556 27 fifo=/tmp/$(basename $0).fifo
pascal@773 28 tazweb="tazweb --notoolbar"
pascal@772 29 panelbase="http://tazpanel:82/pkgs.cgi"
pascal@772 30 panel="http://tazpanel:82/user/pkgs.cgi"
mojo@577 31 doc="file:///usr/share/doc/tazpkg/tazpkg.html"
al@633 32
al@710 33 installed=$(wc -l < $PKGS_DB/installed.info)
al@707 34 text="$(_p \
al@707 35 '%s installed package' \
al@707 36 '%s installed packages' $installed \
al@707 37 "<b>$installed</b>")"
al@710 38
al@710 39 [ -f "$PKGS_DB/packages.list" ] && mtime=$(find $PKGS_DB/packages.list -mtime +10;)
al@710 40 up=0; [ -f "$PKGS_DB/packages.up" ] && up=$(cat $PKGS_DB/packages.up | wc -l)
pankso@451 41
al@707 42
pankso@556 43 # Notification icon
al@707 44
pankso@556 45 listen() {
pankso@556 46 # Manage the I/O redirection from SHell
al@710 47 rm -f $fifo; mkfifo $fifo
al@710 48
pankso@556 49 # Attach a file descriptor
al@603 50 exec 3<> $fifo
al@710 51
pankso@556 52 # Notification icon
al@710 53 yad --notification --listen --image='TazPkg' \
al@710 54 --text="$(_ 'Checking packages lists - %s' "$text")" <&3
al@710 55
pankso@556 56 # Clean-up
pankso@556 57 rm -f $fifo
pankso@451 58 }
pankso@451 59
al@707 60
paul@662 61 # Notification menu (right click)
al@707 62
pankso@556 63 menu() {
pankso@556 64 cat << EOT
pankso@556 65 menu:\
pascal@773 66 $(_n 'My packages' )!$tazweb $panelbase?list!TazPkg|\
pascal@773 67 $(_n 'Recharge lists' )!$tazweb $panel?recharge!tazpkg-up|\
pascal@773 68 $(_n 'Check upgrade' )!$tazweb $panel?up!tazpkg-up|\
al@710 69 $(_n 'TazPkg SHell' )!terminal -e tazpkg shell!utilities-terminal|\
pascal@773 70 $(_n 'TazPkg manual' )!$tazweb $doc!slitaz-doc|\
al@710 71 $(_n 'Close notification')!quit!gtk-close
pankso@556 72 EOT
pankso@451 73 }
pankso@451 74
al@707 75
pankso@451 76 case $1 in
pankso@556 77 usage|help|*-h)
al@710 78 _n "Usage:"; echo " $(basename $0)"
al@707 79 ;;
pankso@451 80 *)
pankso@556 81 # Sleep before displaying the notification icon and
pankso@556 82 # sleep to let user read the tooltips.
pankso@556 83 sleep 4
pankso@556 84 listen &
pankso@556 85 sleep 2
pankso@556 86 menu > $fifo
pankso@556 87 sleep 6
al@710 88
pankso@556 89 # Missing packages list
al@710 90 if [ ! -f $PKGS_DB/packages.list ]; then
al@710 91 tooltip="$(_ 'No packages list found - %s' "$text")"
pascal@773 92 (echo "action:$tazweb $panel?recharge"
al@710 93 echo "tooltip:$tooltip"
al@710 94 echo "icon:tazpkg-up") > $fifo
al@707 95 exit 0
pankso@556 96 fi
al@710 97
pankso@556 98 # Too old packages list
pankso@556 99 if [ "$mtime" ]; then
al@707 100 tooltip="$(_ 'Your packages list is older than 10 days')"
pascal@773 101 (echo "action:$tazweb $panel?recharge"
al@710 102 echo "tooltip:$tooltip"
al@710 103 echo "icon:tazpkg-up") > $fifo
al@707 104 exit 0
pankso@556 105 fi
al@710 106
paul@579 107 # Available upgrades
pankso@556 108 if [ "$up" -gt 0 ]; then
al@707 109 tooltip="$(_p \
al@707 110 'There is %s upgradeable package' \
al@707 111 'There are %s upgradeable packages' $up \
al@707 112 "<b>$up</b>")"
pascal@773 113 (echo "action:$tazweb $panel?up"
al@710 114 echo "tooltip:$tooltip"
al@710 115 echo "icon:tazpkg-up") > $fifo
al@707 116 exit 0
pankso@556 117 fi
al@710 118
pankso@556 119 # Nothing to do, close notification
al@710 120 tooltip="$(_ 'System is up to date - %s' "$text")"
pankso@556 121 echo "tooltip:$tooltip" > $fifo
pankso@471 122 sleep 10
al@707 123 echo "quit" > $fifo
al@707 124 ;;
pankso@451 125 esac
pankso@556 126 exit 0