Übersicht über die Befehle des dritten Kursteils

Anmerkung: Parameter, die mit (Pflichtparameter) gekennzeichnet sind, sind
           unbedingt anzugeben. Fehlen sie, verweigert der Installer die
           Ausführung des Scripts.


Systemanalyse

(GETSIZE )

 Schablone:   (getsize <Pfad+Name>)

 Funktion:  Liefert die Größe der Datei <Pfad+Name> in Bytes.

 Rückgabe:  Dateigröße in Bytes.

 Beispiel:  (getsize "S:Startup-Sequence")


(GETDEVICE )

 Schablone:   (getdevice <Pfad>)

 Funktion:  Gibt den Datenträger zurück, auf dem sich <Pfad> befindet.

 Rückgabe:  Datenträgername.

 Bemerkung: Der Datenträgername wird ohne Doppelpunkt zurückgegeben.

 Beispiel:  (getdevice "S:")  ;liefert z.B. "Workbench3.0"


(GETDISKSPACE )

 Schablone:   (getdiskspace <Pfad>)

 Funktion:  Ermittelt den freien Platz auf dem Datenträger, der durch
                     <Pfad> angegeben wird.

 Rückgabe:  Freien Speicherplatz in Bytes oder -1, falls der Pfad
                     nicht richtig ist oder die Information nicht besorgt werden
                     kann.

 Beispiel:  (getdiskspace "SYS:")


(GETSUM )

 Schablone:   (getsum <Pfad+Name>)

 Funktion:  Ermittelt die Checksumme der Datei <Pfad+Name>.

 Rückgabe:  Checksumme.

 Bemerkung: Die Funktion findet ihre häufigste Anwendung darin, daß
            Softwareautoren damit überprüfen, ob es sich bei einer Datei
            tatsächlich um die von Ihnen publizierte Version handelt, bevor
            sie installiert wird. (Wird eine Datei manipuliert, so ändert sich
            die Checksumme.)

 Beispiel:  (getsum @icon)


(GETVERSION )

 Schablone:   (getsum <Pfad+Name> <Paramter>)

 Funktion:  Liefert die Versionsnummer der angegebenen Datei.
            Dazu muß diese entweder ein RomTag mit Versions-ID-String oder
            einen OS2.x-Versions-String.

 Parameter: (resident) - Mittels Angabe dieses Parameters wird der
            Installer veranlaßt, im Speicher nach der Datei zu suchen, z.B.
            Libraries und Devices.

 Rückgabe:  Versionsnummer als Maske von 32 Bits. Die oberen 16 Bit
            enthalten dabei die Versionsnummer, die unteren 16 die Revisions-
            Nummer.
            (Es gibt verschiedene Wege, diese Werte aus der Rückgabe zu
            isolieren, einen gibt das Beispiel.)

            Kann die Versionsnummer nicht ermittelt werden, so wird der Wert
            0 zurückgegeben.


 Bemerkung: Wird <Pfad+Name> nicht angegeben, so wird die Version
            des Betriebssystems zurückgegeben.

            Bei Libraries und Devices ist darauf zu achten, daß die Funktion
            im Gegensatz zum AmigaDOS-Versions-Befehl nicht automatisch in den
            entsprechenden Verzeichnissen danach sucht, die Pfade müssen also
            vollständig angegeben werden, es sei denn, man möchte im Speicher
            suchen.

 Beispiel:  (set #version (getversion "intuition.library" (resident))
            (set #ver (/ #version 65536))
            (set #rev (- #version (* #ver 65536)))
            (message "Sie benutzen Intuition V" ver "." rev ".")

            Ein weiteres Beispiel bietet die Prozedur [->] (P_CONVERSION ).


(GETENV )

 Schablone:   (getenv <Name>)

 Funktion:  Liest die Environment-Variable <Name> aus.

 Rückgabe:  Inhalt der ENV-Variablen.

 Bemerkung: Der Installer verfügt @{u}nicht@{uu} über direktes Gegenstück
            (SETENV ), da Environment nichts als einzeilige ASCII-Dateien
            sind, kann dessen Funktion durch (TEXTFILE ) übernommen werden.

 Beispiel:  (set #SysVer (getversion))
            (textfile
             (dest "ENV:SysVer")
             (append #SysVer)
            )
            (set #SysVer 0)           ;Löschen der Variablen
            (message "System-Version (32-Bit-Wert): " (getenv "SysVer"))


(GETASSIGN )

 Schablone:   (getassign <Name> <Option>)

 Funktion:  Liefert den Pfadnamen, auf den das <Name> verweist.
            Normalerweise ist nur die Angabe von Assigns möglich, durch
            Angabe einer der folgenden Optionen kann das aber geändert
            werden:

            "v" - nur Datenträger (Volumes) untersuchen.

            "a" - nur logische Assigns untersuchen (Voreinstellung).

            "d" - nur Laufwerke (Devices) untersuchen.

            (z.B. ist ein logisches Assign der Systempartition "SYS:", ihr
             Datenträger z.B. "Workbench3.0" und ihr Laufwerk z.B. "dh0:".)

 Rückgabe:  Zugehöriger Pfadname oder ein leerer String, falls
            <Name> nicht gefunden wird oder durch die durch eine Option
            vorgenommene Beschränkung ausgeschlossen wird.

 Bemerkung: Die Funktion kann benutzt werden, um zu ermitteln, ob
            es sich bei einem String um den Pfad eines Datenträgers, eines
            Assigns, oder eines Laufwerkes handelt.

            <Name> muß ohne Doppelpunkt angegeben werden.

            Die Funktion kann keine Assigns behandeln, die erst zugewiesen
            werden, wenn sie gebraucht werden. Es wird dann ein leerer
            String zurückgegeben.

 Beispiel:  (getassign "SYS")

            oder

            (getassign "FONTS" "a")   ; liefert einen leeren String, falls
                                      ; "FONTS:" kein Assign ist, sondern
                                      ; z.B. ein gleichnamiger Datenträger
                                      ; oder es gar nicht existiert


(ICONINFO )

 Schablone:   (iconinfo <Parameter>)

 Funktion:  Liest Informationen aus einem Icon aus.

 Parameter: (prompt <Text>) - Spezifiziert den einleitenden <Text> zu
                              dieser Funktion, der dem User sagen soll, was der
                              Installer von ihm möchte. Wird nur bei Angabe von
                              (confirm) angezeigt.
                              (Pflichtparameter)
            (help <Hilfstext>) - Definiert den <Hilfstext> zu der Funktion.
                                 (Pflichtparameter)
            (dest <Icon>) - Hiermit wird das Icon angegeben, aus dem gelesen
                            werden soll. ".info" braucht nicht mit angegeben
                            zu werden.
            (gettooltype <Tooltype> <Variable>) - Schreibt den Inhalt des
                                                  <Tooltype> in die <Variable>
            (getdefaulttool <Variable>) - Liest den Defaulttool-Eintrag und
                                          schreibt ihn in die <Variable>
            (getstack <Variable>) - Legt den Stack-Eintrag in der <Variable>
                                    ab.
            (getposition <x> <y>) - Ermittelt die Position des Icons und
                                    schreibt die Bildschirmkoordinaten in die
                                    Variablen <x> bzw. <y>.
                                    Hat das Icon keine feste Position, so wird
                                    -1 zurückgegeben.
                                    Diese Funktion dient dem erhalten von Icon-
                                    Positionen bei Updates o.ä., mißbrauchen
                                    Sie sie nicht, da der User bei wildem
                                    Verändern der Icon-Positionen sehr
                                    irritiert sein kann.
            (confirm [<User-Level>]) - Falls angegeben, wird der User um
                                       Bestätigung gebeten.
                                       <User-Level> gibt dabei an, ab welchem
                                       User-Level die Tafel präsentiert werden
                                       soll, möglich sind 1 für AVERAGE und 2
                                       für EXPERT.
            (safe) - Funktion auch im PRETEND-Modus ausführen.


 Bemerkung: Beachten Sie bitte, daß diese Funktion bei den meisten
            Parametern die Angabe von Variablen verlangt, in die die Werte
            geschrieben werden sollen, statt wie die anderen Funktionen die
            Angabe von Werten selbst.

 Beispiel:  (iconinfo
             (dest @icon)
             (getdefaulttool #deftool)
            )
            (message "Dieses Script wurde mittels " #deftool " gestartet.")


(DATABASE )

 Schablone:   (database <Info> [<Vergleichswert>])

 Funktion:  Ermittelt Informationen über die Hardware-Konfiguration
            des Rechners, auf dem das Script läuft. <Info> ist dabei einer
            der im folgenden aufgezählten Strings und gibt an, welche
            Information Sie wünschen. Wird kein <Vergleichswert> angegeben,
            so liefert die Funktion einen der in Klammern angegebenen Werte.

            "vblank" ("50", "60")
            "cpu" ("68000", "68010", "68030", "68040", "68060")
            "fpu" ("NOFPU", "68881", "68882", "FPU40")
            "graphics-mem" (gibt einen String mit dem freien Chipmem in Bytes
                            zurück)
            "total-mem" (gibt einen String mit dem freien Gesamtspeicher in
                         Bytes zurück)
            "chiprev" ("AA", "ECS", "AGNUS")

            Wird ein <Vergleichswert> angegeben, der einem der in den Klammern
            angegebenen entsprechen muß, so ist das Resultat ein boolescher
            Wert (0 oder 1), der angibt, ob die Angabe zutrifft.

 Bemerkung: Versuchen Sie immer, Ihr Script so zu schreiben, daß
            auch unvorhergesehene Werte auftreten können, man weiß nie, wie
            der Rechner des Users aussieht, die Kunst besteht darin, alle
            Möglichkeiten abzudecken.

 Beispiel:  (not (patmatch "68000|68010" (database "cpu"))



optische Gestaltung

(EXECUTE )

 Schablone:   (execute <Script+Argumente> <Parameter>)

 Funktion:  Führt ein AmigaDOS-Script aus, wobei natürlich auch
            Argumente übergeben werden können.

 Parameter: (prompt <Text>) - Spezifiziert den einleitenden <Text> zu
                              dieser Funktion, der dem User sagen soll, was der
                              Installer von ihm möchte. Wird nur bei Angabe von
                              (confirm) angezeigt.
                              (Pflichtparameter)
            (help <Hilfstext>) - Definiert den <Hilfstext> zu der Funktion.
                                 (Pflichtparameter)
            (confirm [<User-Level>]) - Falls angegeben, wird der User um
                                       Bestätigung gebeten.
                                       <User-Level> gibt dabei an, ab welchem
                                       User-Level die Tafel präsentiert werden
                                       soll, möglich sind 1 für AVERAGE und 2
                                       für EXPERT.
            (safe) - Funktion auch im PRETEND-Modus ausführen.

 Rückgabe:  Gibt den primären Result-Wert des Scripts zurück
            (seit Inst. V42).
            Außerdem wird in der Variablen @ioerr das sekundäre Resultat
            abgelegt.

 Bemerkung: Script und Argumente müssen in einem einzigen String
            übergeben werden.

 Beispiel:  (execute "S:Shell-Startup"
                      (prompt "Führe Shell-Startup aus.")
                      (help "Keine Hilfe verfügbar.")
                     )


(RUN )

 Schablone:   (run <Kommandozeile> <Parameter>)

 Funktion:  Führt eine AmigaDOS-Befehlszeile aus.

 Parameter: (prompt <Text>) - Spezifiziert den einleitenden <Text> zu
                              dieser Funktion, der dem User sagen soll, was der
                              Installer von ihm möchte. Wird nur bei Angabe von
                              (confirm) angezeigt.
                              (Pflichtparameter)
            (help <Hilfstext>) - Definiert den <Hilfstext> zu der Funktion.
                                 (Pflichtparameter)
            (confirm [<User-Level>]) - Falls angegeben, wird der User um
                                       Bestätigung gebeten.
                                       <User-Level> gibt dabei an, ab welchem
                                       User-Level die Tafel präsentiert werden
                                       soll, möglich sind 1 für AVERAGE und 2
                                       für EXPERT.
            (safe) - Funktion auch im PRETEND-Modus ausführen.

 Rückgabe:  Gibt den primären Result-Wert des Befehls zurück
            (seit Inst. V42).
            Außerdem wird in der Variablen @ioerr das sekundäre Resultat
            abgelegt.

 Bemerkung: Die Befehlszeile muß als ein String übergeben werden.

 Beispiel:  (run "c:dir >ram:libs.dir libs:")


(REXX )

 Schablone:   (rexx <ARexx-Script> <Parameter>)

 Funktion:  Führt ein ARexx-Script aus.

 Parameter: (prompt <Text>) - Spezifiziert den einleitenden <Text> zu
                              dieser Funktion, der dem User sagen soll, was der
                              Installer von ihm möchte. Wird nur bei Angabe von
                              (confirm) angezeigt.
                              (Pflichtparameter)
            (help <Hilfstext>) - Definiert den <Hilfstext> zu der Funktion.
                                 (Pflichtparameter)
            (confirm [<User-Level>]) - Falls angegeben, wird der User um
                                       Bestätigung gebeten.
                                       <User-Level> gibt dabei an, ab welchem
                                       User-Level die Tafel präsentiert werden
                                       soll, möglich sind 1 für AVERAGE und 2
                                       für EXPERT.
            (safe) - Funktion auch im PRETEND-Modus ausführen.

 Rückgabe:  Gibt den primären Result-Wert des Scripts zurück
            (seit Inst. V42).
            Außerdem wird in der Variablen @ioerr das sekundäre Resultat
            abgelegt.

 Bemerkung: Script und Argumente müssen in einem einzigen String
            übergeben werden.

            Läuft RexxMast nicht, so wird ein Fehler generiert.

 Beispiel:  (rexx "RexxC:special.rexx")



Scriptgestaltung

(COMPLETE )

 Schablone:   (complete <Prozentwert>)

 Funktion:  Setzt den im Titel-Balken des Installer-Fensters angezeigten
            <Prozentwert>. Dieser dient dazu, den User zu informieren, wie
            weit die Installation bereits fortgeschritten ist.

 Beispiel:  (complete 30)


(WORKING )

 Schablone:   (working <String> [<String> ...])

 Funktion:  Fügt die Strings zusammen und öffnet eine Tafel, auf
            der diese dann unter der Zeile "Working on Installation"
            angezeigt werden. Im Gegensatz zur Message-Funktion wird
            inzwischen mit der Installation fortgefahren. Die Tafel wird
            solange angezeigt, bis ein anderes Kommando wieder das
            Installer-Fenster für die Kommunikation mit dem User beansprucht.

 Bemerkung: Bei Installer-internen Funktionen ist es sinnvoller,
            deren Status-Anzeigen zu verwenden, sofern sie über solche
            verfügen (z.B. (COPYFILES )).

 Beispiel:  (working "Entpacke Archiv \"Daten.lha\" nach " #destdir ".")



sonstige

(SYMBOLSET )

 Schablone:   (symbolset <Var_Name> <Wert> [<Var_Name2> <Wert2> ...])

 Funktion:  Die Funktion setzt die Variable, die durch <Var_Name>
            benannt wird, auf den Wert <Wert>. Dies erlaubt eine Art
            dynamisches Arbeiten mit Variablen ähnlich Pointern in anderen
            Sprachen.

 Rückgabe:  Der Wert, den die bezeichnete Variable zuvor enthielt.

 Bemerkung: Sollte die bezeichnete Variable noch nicht existieren, so
            wird sie angelegt.

            Beachten Sie bitte, daß im Unterschied zu Set <Var_Name> nicht
            direkt eine Variable ist, sondern erst eine bezeichnet.
            Das Beispiel sollte dies verdeutlichen.

            Beachten Sie bitte, daß es ein Gegenstück zu dieser Funktion zum
            Auslesen von Variablen gibt: [->] (SYMBOLVAL ).

 Beispiel:  (set #var_name "#var)
            (symbolset #var_name "Jetzt dürfte alles klar sein.")
            (message (cat "Inhalt von \"#var_name\" ist: " #var_name " .\n\n"
                          "Inhalt von \"#var\" ist: #var " .\n\n"))


(SYMBOLVAL )

 Schablone:   (symbolval <Var_Name>)

 Funktion:  Liest die durch <Var_Name> bezeichnete Variable aus.
            Dies erlaubt eine Art dynamisches Arbeiten mit Variablen ähnlich
            Pointern in anderen Sprachen.

 Bemerkung: Das Beispiel oder ein Vergleich mit dem Gegenstück
            [->] (SYMBOLSET ) sollte die Funktionsweise verdeutlichen.

 Beispiel:  (set #var_name "#var")
            (set #var "Inhalt von #var.")
            (message (cat "Ergebnis ist " (symbolval #var_name) "."))



 String-Bearbeitung 

(STRLEN )

 Schablone:   (strlen <String>)

 Funktion:  Gibt die Länge von <String> in Zeichen zurück.

 Rückgabe:  Anzahl der Zeichen in <String>.

 Beispiel:  (set #string
             (askstring
              (prompt "Bitte den zu prüfenden String eingeben.")
              (help @askstring-help)
              (default "Bitte ersetzen.")
             )
             (message (cat "Der String \"" #string "\" ist " (strlen #string)
                           " Zeichen lang."))


(SUBSTR )

 Schablone:   (substr <String> <Start> [<Länge>])

 Funktion:  Schneidet beginnend mit dem <Start>-en Zeichen einen
            Teil der Länge <Länge> aus <String> heraus.
            Wird <Länge> weggelassen, so endet der Teilstring mit dem Ende von
            <String>.

 Rückgabe:  Der ausgeschnittene Teilstring.

 Bemerkung: Die Funktion beginnt bei der Zählung der Zeichen mit
            dem Wert 0!

 Beispiel:  (set #teilstring (substr #string (- (strlen #string) 5)))
            ;#teilstring enthält die letzten 5 Zeichen von #string



allgemeines, Control-Statements

(PROCEDURE )

 Schablone:   (procedure <Prozedurname> [<Argumente>] <Kommandos>)

 Funktion:  Definiert eine Prozedur mit den Namen <Prozedurname>, der
            ggf. die <Argumente> übergeben werden, und die die <Kommandos>
            umfaßt.

 Rückgabe:  Der Rückgabewert des letzten Befehls der Prozedur.

 Bemerkung: Die Übergabe von Argumenten ist erst seit Installer V42.7
            möglich.

            Der Installer kennt bisher noch keine lokalen Variablen, d.h. alle
            Variablen, die außerhalb der Prozedur definiert wurden, gelten auch
            innerhalb ihrer und umgekehrt.

            Beachten Sie, daß <Prozedurname> kein String, sondern nur ein
            symbolischer Name ist, also weder eine Variable dafür angegeben
            werden kann, noch der Name in Anführungszeichen geschrieben werden
            darf. (s. Beispiel)

            Es empfielt sich, dem Prozedurnamen ein Präfix voranzustellen, um
            evtl. Probleme mit folgenden Installer-Versionen zu vermeiden.
            Empfohlen wird dafür "P_".

 Beispiel:  (procedure P_PROZENT #p_Wert #p_GWert
             (set #p_einProzent (/ #p_GWert 100))
             (/ #p_Wert #p_einProzent)        ;letzter Befehl = Wertübergabe
            )                                 ;Prozedur-Ende

           (asknumber
            (prompt "Bitte den Grundwert eingeben.")
            (help @asknumber-help)
            (default 100)
           )
           (asknumber
            (prompt "Bitte den Wert eingeben.")
            (help @asknumber-help)
            (default 10)
           )
           (message (cat #Wert " sind " (P_PROZENT #Wert #GWert)
                         " % von " #GWert "."))

           Weitere Beispiele bieten (P_CONVERSION ) und (P_ASKDIR_SIZE ),
           s. Bin-Verzeichnis.


Prev Inhaltsverzeichnis Next
© `98Der AmZeiger