Updatebenachrichtigung (KDE): Unterschied zwischen den Versionen

Aus wiki.archlinux.de
Boenki (Diskussion | Beiträge)
K böse Leerzeichen ;)
K synt, hc
 
Zeile 3: Zeile 3:


Zuerst wird ein stündlicher Cronjob erstellt, der die lokale Paketdatenbank aktualisiert
Zuerst wird ein stündlicher Cronjob erstellt, der die lokale Paketdatenbank aktualisiert
/etc/cron.hourly/pacman-sync
 
{{hc|/etc/cron.hourly/pacman-sync|#!/bin/bash
#!/bin/bash
pacman -Sy}}
pacman -Sy


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


crontab -e (als user)
{{hc|1=crontab -e (als user)|2=01 * * * * DISPLAY=:0 /usr/local/bin/check-updates}}
01 * * * * DISPLAY=:0 /usr/local/bin/check-updates


Das Script
Das Script


/usr/local/bin/check-updates
{{hc|/usr/local/bin/check-updates|<nowiki>#!/bin/bash
 
pkgs=$(pacman -Qqu | wc -l)
#!/bin/bash
aurpkgs=$(cower -u | wc -l)
 
pkgs=$(pacman -Qqu | wc -l)
unset msg1
aurpkgs=$(cower -u | wc -l)
unset msg2
unset packages
unset msg1
 
unset msg2
if [ $pkgs -gt 0 ]; then
unset packages
  msg1="$pkgs in Pacman"  
fi
if [ $pkgs -gt 0 ]; then
 
  msg1="$pkgs in Pacman"  
if [ ${aurpkgs} -gt 0 ]; then
fi
  msg2="$aurpkgs in AUR"
fi  
if [ ${aurpkgs} -gt 0 ]; then
 
  msg2="$aurpkgs in AUR"
let packages=$pkgs+$aurpkgs
fi  
 
## kann auch alles in einer if Abfrage gemacht werden, nur 3 wegen der Optik der Ausgabe ;-)
let packages=$pkgs+$aurpkgs
if [ $packages -gt 0 ] && [ $pkgs -gt 0 ] && [ $aurpkgs -gt 0 ]; then
kdialog --title "Paket Updates" --passivepopup \
      "Updates fuer $packages Pakete verfuegbar. \n \
## kann auch alles in einer if Abfrage gemacht werden, nur 3 wegen der Optik der Ausgabe ;-)
      ( $msg1, $msg2 )" 10
if [ $packages -gt 0 ] && [ $pkgs -gt 0 ] && [ $aurpkgs -gt 0 ]; then  
fi
 
if [ $packages -gt 0 ] && [ $pkgs -eq 0 ]; then
   kdialog --title "Paket Updates" --passivepopup \
   kdialog --title "Paket Updates" --passivepopup \
      "Updates fuer $packages Pakete verfuegbar. \n \
      "Updates fuer $packages Pakete verfuegbar. \n \
      ( $msg1, $msg2 )" 10
      ( $msg2 )" 10
fi
fi                                                                                                            
 
if [ $packages -gt 0 ] && [ $pkgs -eq 0 ]; then
if [ $packages -gt 0 ] && [ $aurpkgs -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 \
   kdialog --title "Paket Updates" --passivepopup \
       "Updates fuer $packages Pakete verfuegbar. \n \
       "Updates fuer $packages Pakete verfuegbar. \n \
       ( $msg1 )" 10
       ( $msg1 )" 10
fi
fi
 
exit 0
exit 0</nowiki>}}


[[Kategorie:Scripte]]
[[Kategorie:Scripte]]
[[KAtegorie:Tipps und Tricks]]
[[KAtegorie:Tipps und Tricks]]

Aktuelle Version vom 5. Juni 2013, 20:44 Uhr

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