tazpkg annotate tazpkg-notify @ rev 809
tazpkg: speedup get scripts (again)
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Thu May 28 13:02:55 2015 +0200 (2015-05-28) |
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 |