Updatebenachrichtigung (KDE)

Aus wiki.archlinux.de
Version vom 5. November 2012, 12:01 Uhr von Boenki (Diskussion | Beiträge) (böse Leerzeichen ;))

Hier eine Möglichkeit unter KDE einen Benachrichtigungsdialog für verfügbare Updates einzurichten. Es muss lediglich ein Cron-Service laufen und cowerAUR aus dem AUR installiert sein.

Zuerst wird ein stündlicher Cronjob erstellt, der die lokale Paketdatenbank aktualisiert

/etc/cron.hourly/pacman-sync

#!/bin/bash
pacman -Sy

Dann noch ein stündlicher User-Cronjob der das eigentliche Script aufruft

crontab -e (als user)

01 * * * * DISPLAY=:0 /usr/local/bin/check-updates

Das Script

/usr/local/bin/check-updates


#!/bin/bash

pkgs=$(pacman -Qqu | wc -l)
aurpkgs=$(cower -u | wc -l)

unset msg1
unset msg2
unset packages

if [ $pkgs -gt 0 ]; then
  msg1="$pkgs in Pacman" 
fi

if [ ${aurpkgs} -gt 0 ]; then
  msg2="$aurpkgs in AUR"
fi 

let packages=$pkgs+$aurpkgs


## kann auch alles in einer if Abfrage gemacht werden, nur 3 wegen der Optik der Ausgabe ;-)
if [ $packages -gt 0 ] && [ $pkgs -gt 0 ] && [ $aurpkgs -gt 0 ]; then 
 kdialog --title "Paket Updates" --passivepopup \
      "Updates fuer $packages Pakete verfuegbar. \n \
      ( $msg1, $msg2 )" 10
fi

if [ $packages -gt 0 ] && [ $pkgs -eq 0 ]; then
  kdialog --title "Paket Updates" --passivepopup \
      "Updates fuer $packages Pakete verfuegbar. \n \                                                                          
      ( $msg2 )" 10                                                                                                            
fi                                                                                                                             
                                                                                                                               
if [ $packages -gt 0 ] && [ $aurpkgs -eq 0 ]; then                                                                             
  kdialog --title "Paket Updates" --passivepopup \
      "Updates fuer $packages Pakete verfuegbar. \n \
      ( $msg1 )" 10
fi

exit 0