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.
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 |