Zusammenspiel der Komponenten

Die Skripte im Verzeichnis /opt/zpub/bin führen jeweils spezifische Ausgaben aus, so dass im Zusammenspiel die gewünschte Funktionalität geboten wird. In diesem Kapitel wird der Programmablauf für verschiedene Anwendungsfälle beschreiben.

Erstellung einer neuen Dokumenten-Revsion

Dieser Anwendungsfall beginnt auf dem Rechner des Redakteurs, der ein vorhandenes Dokument lokal bearbeitet oder ein neues anlegt. Mit seinem Subversion-Client überträgt er seine Änderung auf den zpub-Server. Nun gibt es eine neue Revision des Dokuments, die über die von SVN vergebenen Nummer identifiziert wird.

SVN startet direkt nach dem Commit das Skript zpub-post-commit-hook.sh. Dieses untersucht die soeben gemachten Änderungen um herauszufinden, welche Dokumente bearbeitet wurden. Es ist natürlich möglich, mit einem SVN-Commit mehrere Dokumente zu ändern. Für jedes geänderte Dokumement legt es einen Auftrag in /opt/zpub/spool/todo an, welches Angaben zu

  • Kunde
  • Dokument
  • Revision
  • zu verwendenter Stil
  • und Ausgabeverzeichnis

enthält. Dabei wird der zu verwendente Stil aus conf/default_style gelesen, und das Ausgabeverzeichnis in /opt/zpub/demo/output nach dem oben beschriebenen Schema erstellt.

Außerdem aktualisiert zpub-post-commit-hook.sh die Datei /opt/zpub/demo/cache/documents, die die aktuell vorhandenen Dokumente aufzählt. Wird ein Dokument im SVN-Repository gelöscht, wird es darauf hin auch nicht mehr angezeigt. Die generierten Dokumente sind aber weiterhin vorhanden und müssen ggf. vom Systemadministrator gelöscht werden.

Das Skript zpub-spooler.sh, welches permanent läuft, schaut regelmäßig in /opt/zpub/spool/todo nach neuen Aufträgen. Diese verschiebt es nacheinander nach /opt/zpub/spool/wip und ruft das Skript zpub-render.sh mit den Parametern aus der Auftrgs-Datei auf.

Das Render-Skript erstellt darauf das Ausgabeverzeichnis, falls es nicht schon existiert. Es extrahiert die gewünschte Revision des Dokumentes aus dem SVN-Repository, legt eine symbolische Verknüpfung zu dem gewählten Dokumenten-Stil an und ruft, entsprechend der Konfiugration von conf/formats, die Skripte zpub-render-format.sh, welche die einzelnen Ausgabeformate bauen. Dabei kommt der Microsoft HTML Help Workshop zum Einsatz, sowie die Werkzeuge xslt und fop. Bei jeder Art von Fehler bricht dieses Skript ab.

Je nach dem, ob das Render-Skript erfolgreich war oder nicht, wird die Auftragsdatei vom Spooler gelöscht oder nach /opt/zpub/spool/fail verschoben. Der Spooler ruft dann auch noch das Skript zpub-send-mail.pl auf, welches gegebenenfalls an die in settings/subscribers aufgeführten e-Mail-Adressen eine Benachrichtigung über die neue Revision schickt, sowie das Skript zpub-link-latest.pl, welches den oben erwähnten symbolischen Link anlegt. Danach wartet der Spooler wieder auf neue Aufträge.