Hier die screenshots wegen der nicht passenden summe der updates:


Als maximale reihen habe ich z.zt. 20 eingestellt, wollte mal sehen wie das aussieht.
  • [gelöscht]

Das ist wahrlich verwunderlich… Ich hab da jetzt eine Weile dran rumgebastelt und kann im code keinen Fehler finden, ich bin auch extra den 0.10er branch nochmal durchgegangen… es blieb dabei.
Nutzt du wirklich grad checkupdates (bzw. default) als backend? Falls das nur mit yaurt passiert werd ich das wohl nochmal testen müssen.
Habe grade den pc gestartet, und pacnotify startete, und meldete diese Werte angenommen zu haben. (30 min, usw.):
[ich@my-pc ~]$ cat .config/pacnotify.conf 
# time to wait between notifications
sleeptime=30m
# seconds to display the notification
expires=120
# lines of packages to display (more than 9 lines may cause formatting errors)
lines=20
# icon to use for notification
icon=/usr/share/pixmaps/pacnotify32.png # which icon to use
# which backend to use one of: default pacman yaourt
backend=default
[ich@my-pc ~]$ 
Die ~/.config/pacnotify.conf ist die einzige der config-Dateien, die lines=20 verwendet, darum denke ich dass er eben diese Datei eingelesen hat.

Eben hat er nochmal updates gemeldet:
Hallo..

Es scheint nicht an pacnotify zu liegen sondern bei mir an grep, das sich seltsam verhält:

(ich lasse mir die /tmp/pacnotify.tmp jedesmal nach ~ kopieren um reinschauen zu können)
[x@x-pc ~]$ cat pacnotify.tmp 
youtube-dl
[x@x-pc ~]$ grep -vc [a-z] pacnotify.tmp 
1
[x@x-pc ~]$ grep -c [a-z] pacnotify.tmp 
0

Ich verstehe noch nicht was da los ist. Eigentlich sollte doch [a-z] einen Treffer liefern, bei "youtube-dl" ?

Die Rechte der Datei sehen so aus (falls das damit zu tun haben könnte):
-rwxr--r--   1 ich ich     11 24. Jan 10:17 pacnotify.tmp

Ich habe grep 2.16-1 . Mit der Zeile
grep -c --regexp=[a-z] pacnotify.tmp
scheint es zu klappen.
beziehungsweise:
x_updates=`grep -c --regexp=[a-z] $tmpfile`
Bis jetz nur mit 1 Update, mehr sind gerade nicht verfügbar.
  • [gelöscht]

Hast du vielleicht in deiner .shellrc einen alias für grep? Vielleicht würde es dann auch schon reichen wenn ich im Programm immer volle Pfade benutze. Sollte ich bestimmt sowieso machen…
Ich bau das mal so ein: volle Pfade und --regexp=

Danke für deine Mühe und Geduld.
sseemoewe schriebHast du vielleicht in deiner .shellrc einen alias für grep?
Ich habe nur an der ~/.bashrc was gemacht, aber nichts, was mit grep zu tun hat.

pacnotify scheint bei mir jetzt korrekt zu laufen. Zumindest eben gerade mit 4 Updates.

Kann es sein, dass die Spiegelserver mich nach n 'checkupdates' blockieren? Ich habe jetzt als Intervall 30 Minuten eingestellt und hoffe, dass das nicht zu oft ist.
  • [gelöscht]

hansen schriebIch habe nur an der ~/.bashrc was gemacht, aber nichts, was mit grep zu tun hat.
Tja, dann hake ich das mal mit dem Vermerk auf komische Ergebnisse ab und hoffe meine Lektion gelernt zu haben.
hansen schriebpacnotify scheint bei mir jetzt korrekt zu laufen. Zumindest eben gerade mit 4 Updates.
Freut mich.
hansen schriebKann es sein, dass die Spiegelserver mich nach n 'checkupdates' blockieren? Ich habe jetzt als Intervall 30 Minuten eingestellt und hoffe, dass das nicht zu oft ist.
Halte ich für sehr unwahrscheinlich das die dich blocken. Vor allem nicht bei 30m Intervallen, da müsstest du schon mehrfach in der Minute negativ auffallen. Kannst du bestimmt auch weiter runtergehen, bleibt halt eher am fair-use hängen ob man das machen sollte.

Kannst dir ja mal einen Server raussuchen und mittels script und wget immer wieder die Datenbank holen, und nach jedem erfolgreichen Holen verkürzt du den Warteintervall… 🙂
Ich checke – zwar nicht mit pacnotify, aber dennoch – einmal am Tag die Updates, und lade neue Versionen auch gleich automatisiert runter, das gescheiht praktisch im Hintergrund, so dass ich beim zwei-bis-drei-täglichen -Syu nicht warten muss 🙂
Das klingt auch gut. Dann mit cron oder runwhen o.ä. ? Womit lädst du dann die Pakete herunter - hat pacman eine Funktion dafür?

Was bei pacnotify noch ist, wenn man den PC ein paar Stunden in Ruhe lässt, sammeln sich eine Menge notifications an, wenn man so ein kurzes Intervall wie 30m angegeben hat. Ich weiß nicht ob man da die die älteren Meldungen automatisch entfernen kann oder will über pacnotify . Ist mir nur eben aufgefallen.
hansen schriebDas klingt auch gut. Dann mit cron oder runwhen o.ä. ? Womit lädst du dann die Pakete herunter - hat pacman eine Funktion dafür?
Jo, mit Cron als täglicher Cronjob.
$ cat /etc/cron.daily/packageupdate 
#!/bin/sh
pacman -Syuw --noconfirm
Damit werden die Pakete einfach in den Cache geladen. Da ich das Update eh nur alle paar Tage mache, reicht tägliches Runterladen aus.
  • [gelöscht]

hansen schrieb Was bei pacnotify noch ist, wenn man den PC ein paar Stunden in Ruhe lässt, sammeln sich eine Menge notifications an, wenn man so ein kurzes Intervall wie 30m angegeben hat. Ich weiß nicht ob man da die die älteren Meldungen automatisch entfernen kann oder will über pacnotify . Ist mir nur eben aufgefallen.
Die Meldungen von pacnotify haben einen Timeout. Wenn Gnome sich daran nicht hält … mal schauen was man da machen kann…
10 Monate später
  • [gelöscht]

Zwar nur Konsole, aber auch hübsch und bunt:
#!/bin/bash
## Text color variables
txtund=$(tput sgr 0 1)          # Underline
txtbld=$(tput bold)             # Bold
bldred=${txtbld}$(tput setaf 1) #  bold red
bldgrn=${txtbld}$(tput setaf 2) #  bold green
bldblu=${txtbld}$(tput setaf 4) #  bold blue
bldwht=${txtbld}$(tput setaf 7) #  bold white
txtred=$(tput setaf 1)		# red
txtgrn=$(tput setaf 2)		# green
txtylw=$(tput setaf 3)		# yellow
txtblu=$(tput setaf 4)		# blue
txtpnk=$(tput setaf 5)		# pink
txtlbl=$(tput setaf 6)		# light blue
txtwht=$(tput setaf 7)		# white
txtrst=$(tput sgr0)             # Reset
info=${bldwht}*${txtrst}        # Feedback
pass=${bldblu}*${txtrst}
warn=${bldred}*${txtrst}
ques=${bldblu}?${txtrst}

#greeting message
echo -e $txtgrn"Suche nach neuen Paketen…"$txtrst
pm=(`/usr/bin/checkupdates`) #store available updates from configured repos in array 'pm'
aur=(`/usr/bin/cower -ubq`) #store available updates from aur in array aur
total=$((${#pm[*]} + ${#aur[*]})) #calculate sum of pm and aur
if [ $total  -gt 0 ]; then # check if total is greater '0'
	echo -e  $bldred"$total"$txtgrn" insgesamt"$txtrst # if so write a bold+red number and bold+green text
else
	echo -e  $txtred"$total"$txtgrn" insgesamt"$txtrst # else, same without bold
fi
case ${#pm[*]} in # print  some text about number of updates; different formatting
	0) echo -e $txtred"${#pm[*]}"$txtrst$txtgrn "Pacman Updates"$txtrst
	;;
	1) echo -e $bldred"${#pm[*]}"$txtrst$bldgrn "Pacman Update:"$txtrst
	;;
	*) echo -e $bldred"${#pm[*]}"$txtrst$bldgrn "Pacman Updates:"$txtrst
	;;
esac
if [ ${#pm[*]} -gt 0 ]; then # print list of available updates
	((n_elements=${#pm[@]}, max_index=n_elements - 1)) 
	for ((i = 0; i <= max_index; i++)); do
		echo "$info ${pm[i]}"
	done
fi
case ${#aur[*]} in
	0) echo -e $txtred"${#aur[*]}"$txtrst$txtgrn "AUR Updates"$txtrst
	;;
	1) echo -e $bldred"${#aur[*]}"$txtrst$bldgrn "AUR Update:"$txtrst
	;;
	*) echo -e $bldred"${#aur[*]}"$txtrst$bldgrn "AUR Updates:"$txtrst
	;;
esac
if [ ${#aur[*]} -gt 0 ]; then
	((n_elements=${#aur[@]}, max_index=n_elements - 1))
	for ((i = 0; i <= max_index; i++)); do
		echo "$info ${aur[i]}"
	done
fi
______________________

Edit: …und dazu eine nahtlose Antwort auf einen Thread, dessen letzte Antwort fast ein Jahr her ist. Für Scripts haben wir einen eigenen Thread 🙂 Bitte aufs Thread-Datum achten.