Installer-Kurs 3/6

von
André Wyrwa

Hier eine Übersicht über die Inhalte der einzelnen Kursteile:
  1. Einführung, Überblick, Grundlagen
  2. Kommunikation mit dem User, grundlegende Kommandos
  3. Dateioperationen
  4. weiterführende Funktionen und Statements
  5. Scriptoptimierung, Lokalisierung
  6. Tricks für Fortgeschrittene, Tools
Teil 3:

Nachdem wir uns das letzte Mal mit einigen grundlegenden Funktionen des Installers und dem Umgang mit dem User beschäftigt haben, wollen wir uns nun einem sehr umfangreichen und freilich auch sehr wichtigen Gebiet widmen, den Dateioperationen.

In diesem Kursteil geht es also um die Befehle, die den eigentlichen Installationsvorgang betreffen, die direkt Dateien auf der Festplatte manipulieren. Außerdem gehören dazu aber auch einige andere Befehle, die der Installer bereitstellt, um das Handling der Dateinamen und Pfade einfacher zu gestalten.

Zu den Dateioperationen ist zunächst zu sagen, daß sie fast alle abhängig vom User-Level funktionieren. Ein NOVICE-User bekommt von diesen Funktionen so gut wie nichts mit, während ein EXPERT-User auf viele von ihnen Einfluß nehmen kann. Ich widme mich diesem Thema in einem der folgenden Kursteile ausführlicher.

Die Funktionsweise der Dateioperationen selbst ist nicht weiter kompliziert, Sie können sie daher der Befehlsübersicht entnehmen. Hier seien sie nur alle einmal Überblicksmäßig genannt:

Mit Hilfe dieser Palette von Befehlen muß der Installer-Script-Schreiber klarkommen, um sämtliche notwendigen Dateimanipulationen durchzuführen. Natürlich gibt es auch Gegenstücke dazu, mit Hilfe derer man sich über die Gegebenheiten auf den betroffenen Datenträgern und des Systems informieren kann, aber zu diesen kommen wir erst im nächsten Kursteil.

Wenn Sie bereits einen Seitenblick in die Befehlsübersicht dieser Ausgabe geworfen haben, wird Ihnen aufgefallen sein, daß die oben genannten Befehle die Angabe einer Menge von Parametern erlauben bzw. sogar verlangen, in welchen vor allem auch immer die Angabe von Quelle und/oder Ziel gefordert wird. In richtigen Programmiersprachen kann gerade das Handling von Dateipfaden eine recht umständliche Angelegenheit werden, bei der sich auch leicht Fehler einschleichen können. Der Installer kommt dem Script-Autor hier einige Schritte entgegen, indem er ein paar Funktionen zum leichteren Umgang mit Pfaden und Dateinamen anbietet.

Wichtig ist dabei natürlich zunächst einmal die Verknüpfung von Strings. Zum Beispiel kann es ja vorkommen, daß man ein vom User ausgewähltes Verzeichnis ("SYS:Classes/Datatypes") mit einem festen Dateinamen ("sound.datatype") verknüpfen möchte, so daß sich daraus ein kompletter Pfad ("SYS:Classes/Datatypes/sound.datatype") ergibt.

Das hier angegebene Beispiel läßt sich mit einer einfachen String- Verknüpfung realisieren, bei der der zweite String an den ersten angehängt wird, wobei wir allerdings ein "/" einfügen müssen, um den Verzeichnisnahmen vom Dateinamen zu trennen. Dies übernimmt beim Installer die Funktion (CAT ), in unserem Fall (CAT "SYS:Classes/Datatypes" "/" "sound.datatype").

Nun könnte es ja aber sein, wir lassen den Verzeichnisnamen in eine Variable schreiben, was auch viel wahrscheinlicher ist, und wissen nicht wie er aussieht. Dann hätten wir zum Beispiel die Variable #Verzeichnis mit unserem Dateinamen zu verknüpfen, also (CAT #Verzeichnis "/" "sound.datatype"). Wir wissen aber nicht, was in #Verzeichnis steht, der User könnte ebensogut "SYS:" gewählt haben. Dann hätten wir als Ergebnis "SYS:/sound.datatype"), was natürlich eine unzulässige Pfadangabe ist. Bei einer richtigen Sprache müßten wir jetzt jeden String untersuchen, mit welchem Zeichen er endet, um eine sinnvolle Verknüpfung zu gewährleisten. Der Installer aber bietet hier die Funktion (TACKON ), die diese ganzen Untersuchungen für uns übernimmt. Dabei schneidet (TACKON ) auch eventuelle Slashes am Ende des Pfades ab, wenn es sich um eine Verzeichnisangabe handelt. Unser Beispiel sieht dann einfach so aus: (TACKON #Verzeichnis "sound.datatype").

Ähnlich komfortabel lassen sich umgekehrt auch Dateinamen oder Verzeichnisangaben von vollständigen Pfaden abtrennen. Dazu dienen die Funktionen (FILEONLY ) und (PATHONLY ).

Nützlich kann auch die Funktion @{"(EXPANDPATH )" link Kurse-InstCom} werden, die es ermöglicht, die vollständige Pfadangabe zu einem Assign zu ermitteln.

Sehr interessant sind auch die folgenden dateibezogenen Strukturbefehle des Installers:

Die (FOREACH )-Schleife ist eine der nützlichsten Einrichtungen des Installers, da mit ihr u.a. Verzeichnisinhalte untersucht werden können und somit Dateien bearbeitet, deren Dateinamen der Scriptschreiber nicht kennt, wohl aber ihren Aufenthaltsort, z.B. Dateien im DEVS:-Verzeichnis oder ähnliches.

(EXISTS ) ist vor allem für IF- oder SELECT-Anweisungen von Bedeutung, allerdings nicht nur, um zu prüfen, ob eine Datei vorhanden ist oder nicht, sondern es läßt sich damit auch ermitteln, ob es sich um eine Datei oder ein Verzeichnis handelt.

Ebenso für solche Verzweigungen nützlich ist (EARLIER ), das die Datestamps zweier Dateien vergleicht. Damit lassen sich ältere Dateien durch neuere ersetzen oder einfach alte Dateien löschen. Sogar das Aussortieren von Dateien, die vor einem bestimmten Datum erstellt wurden, ist damit denkbar.

Die Funktionalität von (PATMATCH ) dürfte einleuchtend sein, wenn man sich mit der Shell ein wenig auskennt. Da der Installer nicht selbst direkt DOS-Patterns unterstützt, bietet er diese Funktion separat an, die an entscheidenden Stellen auch als Parameter zu Befehlen angegeben werden kann, z.B. bei (COPYFILES ).

Das wars auch schon für diese Ausgabe. Das heißt, das war es noch nicht ganz, denn es liegt noch ein Beispielscript (s. Bin-Archiv) bei: ein kleines "Tool" zum dauerhaften Fixieren der Position des "Ram Disk"- Icons. Es benutzt einige der Befehle, die Sie bisher kennengelernt haben. Fühlen Sie sich ruhig aufgefordert, ein wenig damit herumzuexperimentieren, es lassen sich mit Sicherheit einige Verbesserungen vornehmen. Seien Sie allerdings vorsichtig, das Anschalten der Protokollfunktion und des PRETEND-Modus kann beim Herumprobieren einige Verwirrung verhindern und unliebsame Überraschungen vermeiden.

Das nächste Mal widmen wir uns dann der Erforschung des Systems, auf dem das Installerscript läuft, schließlich wollen wir ja nicht alles den User fragen, wenn uns der Computer selbst ein wenig über sich verraten kann.


Prev Inhaltsverzeichnis Next
© `98Der AmZeiger