tazpkg annotate tazpkg-notify @ rev 846

Remove "busybox" "prefixes" (thanks llev)
We used "busybox wget", etc. to be sure we called Busybox's "wget", not any other "wget". Workaround already done in "getenv" module.
author Aleksej Bobylev <al.bobylev@gmail.com>
date Fri Oct 09 13:14:01 2015 +0300 (2015-10-09)
parents 636b4e8dcf6a
children 21ac83abe572
rev   line source
pankso@451 1 #!/bin/sh
al@840 2 # TazPkg - Tiny autonomous zone packages manager, hg.slitaz.org/tazpkg
al@840 3 # tazpkg-notify - part of TazPkg
al@840 4 # Notification icon for TazPkg packages
al@840 5
al@840 6 # Recharging pkgs list can be done automatically at boot, so notifies users
al@840 7 # if some updates are available. Also notifies users if the packages list is too
pankso@451 8 # old and out-of-date or if no packages list found. This script should
paul@477 9 # be run by the WM autostart script or ~/.xsession and needs a systray to
paul@477 10 # sit in like in LXpanel or Tint2.
al@840 11
al@840 12 # Copyright (C) 2012-2015 SliTaz - GNU General Public License v3.
al@840 13 # Authors: See the AUTHORS files
al@840 14
pankso@451 15
al@710 16 . /lib/libtaz.sh
al@710 17 . /etc/slitaz/slitaz.conf
al@710 18
pankso@556 19 # I18n
al@633 20 export TEXTDOMAIN='tazpkg'
pankso@451 21
pankso@556 22 fifo=/tmp/$(basename $0).fifo
mojo@577 23 doc="file:///usr/share/doc/tazpkg/tazpkg.html"
al@633 24
al@840 25 installed=$(wc -l < "$PKGS_DB/installed.info")
al@707 26 text="$(_p \
al@707 27 '%s installed package' \
al@840 28 '%s installed packages' "$installed" \
al@707 29 "<b>$installed</b>")"
al@710 30
al@840 31 [ -f "$PKGS_DB/IDs" ] && mtime=$(find "$PKGS_DB/IDs" -mtime +10;)
al@840 32 up=0; [ -f "$PKGS_DB/packages.up" ] && up=$(wc -l < "$PKGS_DB/packages.up")
pankso@451 33
al@707 34
pankso@556 35 # Notification icon
al@707 36
pankso@556 37 listen() {
pankso@556 38 # Manage the I/O redirection from SHell
al@710 39 rm -f $fifo; mkfifo $fifo
al@710 40
pankso@556 41 # Attach a file descriptor
al@603 42 exec 3<> $fifo
al@710 43
pankso@556 44 # Notification icon
al@710 45 yad --notification --listen --image='TazPkg' \
al@710 46 --text="$(_ 'Checking packages lists - %s' "$text")" <&3
al@710 47
pankso@556 48 # Clean-up
pankso@556 49 rm -f $fifo
pankso@451 50 }
pankso@451 51
al@707 52
paul@662 53 # Notification menu (right click)
al@707 54
pankso@556 55 menu() {
pankso@556 56 cat << EOT
pankso@556 57 menu:\
al@840 58 $(_n 'My packages' )!tazpanel pkgs#list!TazPkg|\
al@840 59 $(_n 'Recharge lists' )!tazbox su tazpanel pkgs#recharge!tazpkg-up|\
al@840 60 $(_n 'Check upgrade' )!tazbox su tazpanel pkgs#up!tazpkg-up|\
al@710 61 $(_n 'TazPkg SHell' )!terminal -e tazpkg shell!utilities-terminal|\
al@840 62 $(_n 'TazPkg manual' )!tazweb --notoolbar $doc!slitaz-doc|\
al@710 63 $(_n 'Close notification')!quit!gtk-close
pankso@556 64 EOT
pankso@451 65 }
pankso@451 66
al@707 67
pankso@451 68 case $1 in
pankso@556 69 usage|help|*-h)
al@710 70 _n "Usage:"; echo " $(basename $0)"
al@707 71 ;;
pankso@451 72 *)
pankso@556 73 # Sleep before displaying the notification icon and
pankso@556 74 # sleep to let user read the tooltips.
pankso@556 75 sleep 4
pankso@556 76 listen &
pankso@556 77 sleep 2
pankso@556 78 menu > $fifo
pankso@556 79 sleep 6
al@710 80
pankso@556 81 # Missing packages list
al@840 82 if [ ! -f "$PKGS_DB/packages.info" ]; then
al@710 83 tooltip="$(_ 'No packages list found - %s' "$text")"
al@840 84 (echo "action:tazbox su tazpanel pkgs#recharge"
al@710 85 echo "tooltip:$tooltip"
al@710 86 echo "icon:tazpkg-up") > $fifo
al@707 87 exit 0
pankso@556 88 fi
al@710 89
pankso@556 90 # Too old packages list
al@840 91 if [ -n "$mtime" ]; then
al@707 92 tooltip="$(_ 'Your packages list is older than 10 days')"
al@840 93 (echo "action:tazbox su tazpanel pkgs#recharge"
al@840 94 echo "action:quit"
al@710 95 echo "tooltip:$tooltip"
al@710 96 echo "icon:tazpkg-up") > $fifo
al@707 97 exit 0
pankso@556 98 fi
al@710 99
paul@579 100 # Available upgrades
pankso@556 101 if [ "$up" -gt 0 ]; then
al@707 102 tooltip="$(_p \
al@707 103 'There is %s upgradeable package' \
al@840 104 'There are %s upgradeable packages' "$up" \
al@707 105 "<b>$up</b>")"
al@840 106 (echo "action:tazbox su tazpanel pkgs#up"
al@710 107 echo "tooltip:$tooltip"
al@710 108 echo "icon:tazpkg-up") > $fifo
al@707 109 exit 0
pankso@556 110 fi
al@710 111
pankso@556 112 # Nothing to do, close notification
al@710 113 tooltip="$(_ 'System is up to date - %s' "$text")"
pankso@556 114 echo "tooltip:$tooltip" > $fifo
pankso@471 115 sleep 10
al@707 116 echo "quit" > $fifo
al@707 117 ;;
pankso@451 118 esac
pankso@556 119 exit 0