Vorgehen:
Im ersten Schritt werden von GitHub die Releaseinformationen abgerufen. Hierzu wird die Versionsnummer der lokalen BlackCat-Installation verwendet und mit dem letzten verfügbaren Release bei GitHub verglichen. Standardmäßig werden hierbei Pre-Releases (also Alpha, Beta) aussortiert; wenn man diese auch angezeigt haben möchte, kann man das in der tool.php konfigurieren.
Wird bei dieser Prüfung festgestellt, daß eine neuere Version verfügbar ist, kann man im zweiten Schritt die Unterschiede herunterladen. Da das sehr lange dauern kann (die Informationen werden von GitHub heruntergeladen), wird danach wieder gestoppt. Zudem funktioniert dieser Schritt nur, wenn die 'max_execution_time' des Webservers mindestens 15 Sekunden beträgt. Die Prüfung erfolgt durch Anklicken des Buttons.
Die Seite wird während der Prüfung 2x neu geladen; den Fortschritt sieht man im "PROGRESS INFO" Panel. Nach dem 2. Reload der Seite werden einem die Unterschiede angezeigt, in diesem Fall: keine neuen, 20 geänderte und 2 gelöschte Dateien.
Wurden in diesem Schritt Änderungen festgestellt, kann man im dritten Schritt die neuen und geänderten Dateien herunterladen. Da auch das ziemlich lange dauern kann, werden "Häppchen" herunter geladen; die Seite wird mehrfach neu geladen, wobei man den jeweiligen Fortschritt jeweils im Status-Panel sehen kann. Das geschieht so lange, wie es noch Dateien zum Herunterladen gibt.
Die heruntergeladenen Dateien landen erst mal im temp-Verzeichnis. Da man gelöschte Dateien nicht herunterladen kann, fehlen diese natürlich.

Das ist der Teil, der bisher fertig ist. Die nächsten Schritte sehen dann ungefähr so aus:
- Um die gelöschten Dateien zu löschen, muß eine update.php o.ä. erzeugt werden.
- Die geänderten Dateien müssen auf Anforderung in die "echten" Verzeichnisse kopiert werden.
- Die überschriebenen Dateien sollten vorher gesichert werden.
- Es muß eine Art automatische update.php ausgeführt werden.
Konfigurationsmöglichkeiten:
- Man kann bei Bedarf einen Proxy konfigurieren
- Wer Pre-Releases herunterladen will (natürlich nicht für Produktivumgebungen empfohlen), kann einen Schalter setzen
- Für Testumgebungen (wie meine) kann man gezielt eine Version vorgeben, gegen die geprüft werden soll
