Automatisch
Bei einem Release des Handbuchs, muss auch kurz nach der Online, auch eine CD-Version entstehen. Die CD’s werden verschickt und von Beratern auf dem Laptop mitgenommen.
Eigentlich kein Problem, denn wir verwenden ja Lotus Notes. Aber so einfach ist das nicht, denn die Benutzer greifen nur per Webbrowser auf die Daten zu. Eigentlich könnte man einfach reine HTML Dateien exportieren und auf die CD brennen. Aber dann könnte man keine Volltextsuche integrieren. Also haben wir für den CD Release letztes Jahr, einen kleinen Java basierten Webserver mit integrierter Volltextsuche entwickelt. Das ist zwar für die Benutzer gut und schön, erfordert aber einiges an Mehraufwand beim generieren der CD.
Es müssen jetzt zwei Versionen der Daten erstellt werden: Einmal nur der reine Inhalt, einmal mit Navigation (denn die Volltextsuche soll nur den Inhalt indexieren und nicht 1000 mal die gleichen Navigationslinks). Dann muss der Volltextindex gebaut werden. Dann die richtigen HTML Dateien (mit allem Schnick-Schnack) an die richtigen Stellen kopieren. Die ganzen CSS / JavaScript Dateien müssen an den richtigen Ort. Und zum Schluss müssen auch noch einige besonders renitente Dinge direkt im HTML Code korrigiert werden (Suchen & ersetzen mit Regular Expressions ist eine feine Sache)
All das haben wir bisher von Hand gemacht. Natürlich gibt es — kaum ist die CD gebrannt — nochmals Änderungen. Und der ganze Prozess beginnt von vorne. Da dies kein tragbarer Zustand ist, habe ich mich letzte Woche hingesetzt und alle diese Schritte automatisiert. Alle Dateien (mit / ohne Navigation) werden in einem Durchgang erzeugt. Ein Script baut dann die CD Struktur zusammen, generiert den Volltextindex, und finalisiert das ganze.
Das Script, sämtliche Dateien die eine solche CD ausmachen und was es weiter noch so braucht, ist unter Versionskontrolle.
Eine neue Version der CD bauen dauert jetzt ca. 6 Minuten und kann mit einem Mausklick und zwei Befehlen auf der Kommandozeile erledigt werden. (Und auch das möchte ich noch weiter reduzieren, mal sehen ob ich Lotus Notes dazu bringen kann, ein Ruby Script aufzurufen)
Zwar hat mich das ganze beinahe einen ganzen Tag Arbeit gekostet (den ich sonst “produktiv” hätte einsetzen können). Aber dank diesen Automatismen ist die Qualität der zukünftigen CD’s, die ich für diesen Kunden herstelle, garantiert. Jedes mal. Automatisch. Ohne dass es mich dazu braucht.
Technorati Tags: lotus notes, domino, automatisch