#!/bin/sh

# das Update-Verzeichnis wird beim Start des Skripts als 
# Kommandozeilenargument uebergeben
location=$1
mkdir -p $1

# eigenes Log-File anlegen, damit getappleupdates das system.log
# nicht vollschreibt
updatelogs="/var/log/getappleupdates.log"

if ! [ -f "$updatelogs" ]; then
    touch "$updatelogs"
    # Zugriffsrechte fuer das Skript anpassen
    chown _www:_www "$updatelogs"
fi

# ins Download-Verzeichnis wechseln
cd $1
# dies sind Apples XML-Dateien, in denen die einzelnen Updates 
# aufgefuehrt sind
for index in index-leopard-snowleopard.merged-1.sucatalog index-leopard.merged-1.sucatalog index-lion-snowleopard-leopard.merged-1.sucatalog
do

# die XML-Dateien sind unter dieser URL zu finden:
/opt/local/bin/wget --mirror http://swscan.apple.com/content/catalogs/others/$index

# also alle nacheinenader laden und die darin aufgefuehrten 
# Dateinamen zum Download extrahieren
for swfile in `cat swscan.apple.com/content/catalogs/others/$index | grep "http://" | awk -F">" '{ print $2 }' | awk -F"<" '{ print $1 }'`
do

# zum Zuschauen, welches file gerade geladen wird,
# das Kommentarzeichen entfernen - Meldung erscheint in system.log:
# echo $swfile

# die URL zum Update-File laden, abgleichen und ggf. die Datei laden
# Vorgang in /var/log/getappleupdates.log erfassen
/opt/local/bin/wget --mirror "$swfile" -a "$updatelogs"
done
done
