Zope-Seiten statisch spiegeln
Ich habe das Skript zope_static_mirror.py, das unter
dieser Adresse
bezogen werden kann, ein bisschen modifiziert, so dass es nun meinen Bedürfnissen eher
entgegen kommt. Testet einfach mal, ob es für Euch funktioniert....
Im wesentlichen habe ich an dem Skript zwei Änderungen vorgenommen. Zum einen passt es
nun die Pfadangaben besser an. In der ursprünglichen Version war es so, dass das Skript
immer das lokale Verzeichnis in die relativen URLs mit aufgenommen hat. Das hat für mich
nicht so besonders gut funktioniert. Zum anderen habe ich das Skript so modifiziert, dass es
statt einer Zope-typischen index_html-Datei eine Datei index.html anlegt.
Wie verwendet man also das Skript? Eigentlich ganz einfach: Zunächst einmal installiert man
Zope auf seinem Computer und erstellt eine entsprechende Website.
Dann muss man in dem Quelltext den Bereich für das Skript A_list ausschneiden und in einem
Python-Skript mit gleichem Namen im Root-Directory des Servers ablegen.
Sodann wechselt man in ein beliebiges Verzeichnis und legt dort das Unterverzeichnis mirror
an. Dann ruft man lediglich mit dem Befehl python zope_mirror_static.py das entsprechende
Skript auf und voila ... es findet sich im subfolder mirror eine Kopie der Seite.
Diese Seite kann man dann z.B. mit dem Tool Weex direkt
online stellen. In dem Skript stehen gleich zu Anfang einige Variablen, die man eventuell verändern
kann; die Einstellungen sind fü einen normalen lokalen Server allerdings ausreichend.
Man kann das lokale Verzeichnis, den Host, von dem die Dateien herunter geladen werden sollen, sowie
diverse Anpassungen vornehmen. Für den lokalen Server braucht man dort nichts zu verändern
und wer einen Zope-Server im Netz stehen hat, dem brauche ich als eingefleischter Perl-Jünger
wohl nicht über ein Python-Skript zu erzählen.
Da ich leider kein besonders routinierter Python-Programmierer bin, habe ich ein Problem
leider nicht in den Griff bekommen: Das Skript passt die Links in allen Dateien an; dies
führt dazu, dass bei allen Dateien das Datum verändert ist und auch wenn nur eine
einzige Datei verändert wurde, weex alle dateien aktualisiert.
Um dieses Problem zu umgehen habe ich zwei kleine Perl-Skripte geschrieben:
save_state.pl und restore_dates.pl.
Zuerst lässt man das erste Perl-Skript laufen und führt dann das python-Skript aus.
Das dann ausgeführte zweite Perlskript überprüft die Checksummen der Dateien
und setzt jene Dateien, die sich nicht verändert haben, auf das Ursprungsdatum
zur¨ck. Sollte jemand diese Funktionalität in das Python-Skript integrieren,
wäre ich f¨r einen Hinweis dankbar.
Download des Skriptes
Download des Patches
|