tree.pl


Übersicht

tree.pl --help | --version

tree.pl [ --verbose ... | --no_verbose ]
[ --lang LANG ] [ --webdir WEBDIR ] [ --kaldir KALDIR ] [ --srcdir SRCDIR ]
[ --shiftnd SHIFTND ]...
[ --incldir INCLDIR ]... [ --excldir EXCLDIR ]...
[ --inclfile INCLFILE ]... [ --exclfile EXCLFILE ]...
[ --rtname RTNAME ] [ --rtrefbase RTREFBASE ] [ --rttitle RTTITLE ] [ --ixfile IXFILE ]
[ --dirnmflt DIRNMFLT ]... [ --filenmflt FILENMFLT ]...
[ --titlecmd TITLECMD ] [ --xmlns XMLNS ]

Beschreibung

Dieses Programm erzeugt die Datei kalender/tree.xml (s. tree.rng) mit der Baustruktur der Kalender, wie sie in die Startseite der Website eingebunden wird. Zum Verzeichnis kalender wird der „Wurzelknoten” (der Kalender) angelegt. Die Kalender eines Jahres JAHR liegen im Unterverzeichnis kalender/JAHR. Zu jedem Jahr wird ein Verzeichnisknoten mit den Kalendern als Dateiknoten (Endknoten) angelegt, zusätzlich werden zu den Kalendern des „aktuellen” (s. --shiftnd) Jahres Dateiknoten direkt unter dem Wurzelknoten angelegt. In der Voreinstellung ist das aktuelle Jahr in den Monaten Januar bis November das laufenden Jahr, im Dezember das Folgejahr.

Es ist mit Perl 5.10.1 getestet.

Optionen

Zu allen Befehlszeilenargumenten gibt es Voreinstellungen.

Zum Beispiel wählt „--incldir .” zunächst alle Unterverzeichnisse von KALDIR aus. „--excldir '/no$'” schließt nur Unterverzeichnisse mit dem Namen no aus. Wenn es kein Unterverzeichnis mit dem Namen no gibt, werden alle Unterverzeichnisse und deren Unterverzeichnisse ausgewählt.

Entsprechend wählt „--inclfile . --exclfile /whisky\$” alle Dateien aus, die nicht whisky heißen.

--help

Gibt eine kurze Hilfe mit den Voreinstellungen zu allen möglichen Befehlszeilenargumenten aus.

--version

Gibt kurze Hinweise zum Programm und die Version aus.

--verbose

Erhöht den Umfang der Meldungen nach STDERR.

--no_verbose

Unterdrückt die Ausgabe von Meldungen. Die Optionen --verbose und --no_verbose werden der Reihe nach ausgewertet.

--lang LANG

LANG ist die Kennung der Sprache mit möglichen Erweiterungen. Der Wert wird für den Platzhalter ${lang} in den Befehl TITLECMD zur Ermittlung des Titels eines Dokuments eingesetzt.

--webdir WEBDIR

Das Basis-Verzeichnis zur Website wird für den Platzhalter ${webdir} in den Werten KALDIR, SRCDIR und TITLECMD eingesetzt.

--kaldir KALDIR

Das Verzeichnis der Kalender-Quelldaten mit dem Unterverzeichnis base für die Grunddaten und Unterverzeichnissen JAHR für die Bildauswahl-Dateien der Kalender eines Jahres. Der Wert kann Platzhalter ${xxx} (z.B. ${webdir}) für das Befehlszeilenargument XXX enthalten.

--srcdir SRCDIR

Das Verzeichnis der Skripte und Quellcode-Dateien zun dem Kalendern. Der Wert kann Platzhalter ${xxx} (z.B. ${webdir}) für das Befehlszeilenargument XXX enthalten.

--shiftnd SHIFTND

Der Name eines Knotens (s. name), dessen Kindknoten zu Kindknoten des Wurzelknotens kopiert werden sollen. Das gesamte Argument kann wiederholt werden. Dann werden möglicherweise die Unterknoten mehrerer Knoten kopiert.

--incldir INCLDIR

Die Unterverzeichnisse von KALDIR, die in die ausgegebene Baumstruktur eingehen, werden in zwei Schritten ausgewählt. Im ersten Schritt werden alle Unterverzeichnisse ausgewählt, deren vollständiger Verzeichnispfad einem der regulären Ausrücke INCLDIR entspricht. Das gsamte Argument kann wiederholt werden. Im zweiten Schritt werden alle Unterverzeichnisse ausgenommen, deren Verzeichnispfad einem der regulären Ausdrücke EXCLDIR entspricht.

--excldir EXCLDIR

Ein Unterverzeichnis von KALDIR, dessen vollständiger Verzeichnispfad einem der regulären Ausdrücke EXCLDIR entspricht (das gesamte Argument kann wiederholt werden), wird nicht in die ausgegebene Baumstruktur aufgenommen, auch wenn der Verzeichnispfad einem der Ausrücke INCLDIR entspricht.

--inclfile INCLFILE

Dateien im Verzeichnis KALDIR oder einem ausgewählten Unterverzeichnis (s. INCLDIR und EXCLDIR) werden vorläufig ausgewählt, wenn ihr vollständiger Dateipfad einem regulären Ausdruck INCLFILE entspricht. Das Argument kann mehrfach vorkommen. Wenn der Dateipfad dann keinem der regulären Ausdrücke EXCLFILE entspricht, wird die Datei in die Baumstruktur aufgenommen.

--exclfile EXCLFILE

Der reguläre Ausdruck EXCLFILE beschreibt Dateipfade, die aus der ausgegebenen Baumstruktur ausgeschlossen sind (s. INCLFILE). Das gesamte Argument kann mehrfach vorkommen.

--rtname RTNAME

RTNAME ist der Name (s. name), des Wurzelknotens, der dem Verzeichnis KALDIR entspricht.

--rtrefbase RTREFBASE

Der Wert RTREFBASE wird als Verweis-Basis (s. refbase) zum Wurzelknoten ausgegeben.

--rttitle RTTITLE

Der Titel (s. title) des Wurzelknotens, der dem Verzeichnis KALDIR entspricht.

Wenn die Datei KALDIR/IXFILE existiert, wird der voreingestellte Titel dieser Datei entnommen (s. TITLECMD).

--ixfile IXFILE

Der Name der Index-Datei eines Verzeichnisses. Der Wert IXFILE hat zwei Funktionen: er wird als Inhalt des Elements ref zu Verzeichnis-Knoten ausgegeben. Wenn die Datei mit dem Namen IXFILE im Verzeichnis KALDIR oder einem ausgewählten Unterverzeichnis existiert, dann wird aus dieser Datei der Titel des Verzeichnisknotens bestimmt (s. TITLECMD).

--dirnmflt DIRNMFLT

Der Name (name) eines Verzeichnisknotens wird aus dem Verzeichnispfad bestimmt. Er ist die erste "Matchgruppe" des regulären Ausdrucks DIRNMFLT, der auf den vollständigen Verzeichnispfad angewandt wird. Das gesamte Argument kann mehrfach vorkommen. Der erste passende reguläre Ausdruck bestimmt den Namen. Wenn kein regulärer Ausdruck passt, ist der Verzeichnisname auch der Knotenname.

--filenmflt FILENMFLT

Der Name (name) eines Dateiknotens wird aus dem Dateipfad bestimmt. Er ist die erste "Matchgruppe" des regulären Ausdrucks DIRNMFLT, der auf den vollständigen Dateipfad angewandt wird. Das gesamte Argument kann mehrfach vorkommen. Der erste passende reguläre Ausdruck bestimmt den Namen. Wenn kein regulärer Ausdruck passt, ist der Dateiname auch der Knotenname.

--titlecmd TITLECMD

Befehl zur Bestimmung des Titels eines Dokuments mit Platzhaltern. Die möglichen Platzhalter sind ${lang}, ${webdir}, ${kaldir}, ${srcdir} und ${ixfile} für die Befehlszeilenargumente sowie ${file} für den Dateipfad des Dokuments, dessen Titel bestimmt werden soll.

Voreingestellt ist das Bash-Skript titlecmd (Quelltext).

--xmlns XMLNS

XMLNS ist der XML-Namensraum der Ausgabe.

Benutzte Module

Das Programm benutzt die folgenden Module:

Herbaer::Readargs (Readargs.pm (Quelltext))

Die Funktion Herbaer::Readargs::read_args liest die Befehlszeilen-Argumente.

Herbaer::Replace

Die Funktion Herbaer::Replace::replace ersetzt Platzhalter der Form ${xxx}. Die Datei Replace.pm ist im Zusammenhang mit Lokalisierungen / Übersetzungen beschrieben.

Herbaer::XMLDataWriter (Datei XMLDataWriter.pm (Quelltext))

Ausgabe von XML-Daten.