Von der Mailbox aus können externe Programme aufgerufen werden. Bestimmte Programme können für Benutzer freigegeben werden.
Der Aufruf von einem beliebigen externen Programm erfolgt für den Sysop durch die Eingabe von OSHELL <Programm-Name> <Parameter>.
Um ein Programm für Benutzer zugänglich zu machen, muß das Programm in einer Datei namens RUNUTIL.BCM eingetragen sein. Ansonsten ist die Abarbeitung des Programms vollkommen mit der von OSHELL identisch. Die Datei RUNUTIL.BCM hat folgendes Format:
;Befehl Programm Optionen Kommentar BIN*READ binread Gepacktes Auslesen von Mails DI*GIINFO digiinfo -q Infos zu Digipeatern anzeigen MEMI*NFO "cat /proc/meminfo" -qc Anzeigen der Speicher-Auslastung FM*AIL fmail -qs Erzeugen einer F-Mail 7*GET 7get -f Auslesen im FileSurf-Modus per 7plus
Die Felder haben folgende Bedeutung:
Das ist der Befehl in der Mailbox, mit dem das Run-Utility gestartet werden kann. Die Buchstaben vor dem Stern müssen eingegeben werden, damit der Befehl erkannt wird, die Buchstaben hinter dem Stern sind optional.
Das ist das externe Linux/DOS/Windows NT-Programm, das bei der Eingabe des Befehls aufgerufen wird. Enthält der Shell-Aufruf ein Leerzeichen, ist dieser Parameter in Anführungszeichen zu setzen.
Dieses Feld ist optional. Es besteht aus einzelnen Buchstaben, denen ein ``-'' vorangestellt werden muß. Die Buchstaben beeinflussen den Aufruf des Run-Utilities und haben folgende Bedeutung:
Eine kurze Beschreibung der Funktion des Run-Utilities (< 80 Zeichen).
Außerdem gelten folgende Regeln für diese Datei:
Das aufgerufene Programm muß folgende Eigenschaften haben:
Unter DOS:
Unter Linux:
Unter Windows NT:
Unter DOS und Windows NT werden die angegebenen Parameter bis auf die Zeichen ``<'', ``>'' und ``|'' transparent an das Run-Utility übergeben. Ist eines der genannten Zeichen enthalten, wird der Parameter-String an dieser Stelle abgeschnitten.
Unter Linux wird allen Zeichen ein Backslash (``\'') vorangestellt, so daß von der Shell kein Zeichen anderweitig interpretiert wird. Auf diese Weise können auch die Zeichen ``<'', ``>'' und ``|'' übergeben werden. Letzteres geschieht aus Sicherheitsgründen aber nur, wenn dies in RUNUTIL.BCM mit dem Parameter -T eingestellt wurde.
Auf jeden Fall ist es einfacher, wenn ein Run-Utility die in RUNDAT.BCM unter ``cmdline'' (siehe unten) angegebene Kommandozeile auswertet. Hier sind sogar mehrere Leerzeichen zwischen zwei Parametern sichtbar. Allerdings muß natürlich auch das Run-Utility aufpassen, wenn es mit den Parametern weitere Shell-Aufrufe macht.
Die Datei RUNDAT.BCM wird von der BayCom-Mailbox vor jedem Run-Utility-Aufruf erzeugt, außer es wurde die Option -Q in RUNUTIL.BCM angegeben.
Achtung: Unter Linux/Windows NT ist diese Datei nur unmittelbar nach dem Aufruf gültig. Zu einem beliebigen späteren Zeitpunkt kann diese Datei bereits die Daten für einen anderen Run-Utility-Aufruf enthalten.
In der Datei RUNDAT.BCM sind einige Informationen über den Benutzer gespeichert, der das Run-Utility aufgerufen hat. Das externe Programm kann diese Informationen entsprechend auswerten.
Die erste Zeile enthält einige Angaben zum Benutzer in folgender Reihenfolge:
Diese Informationen sind nur durch Leerzeichen getrennt und müssen anhand der Reihenfolge ausgewertet werden. Zu beachten ist, daß die Informationen in der ersten Zeile nur aus Kompatibilitäts-Gründen vorhanden sind. Sie sollte nicht mehr verwendet werden, weil diese erste Zeile in späteren Version der BayCom-Mailbox evtl. nicht mehr erzeugt wird.
Ab der zweiten Zeile folgen Informationen in der Form ``Schlüsselwort Wert''. Die Schlüsselwörter haben folgende Bedeutung:
Call ohne SSID
MyBBS (ALTER FORWARD)
Name (ALTER NAME)
Sprache (ALTER SPEECH)
1, wenn der Login mit Paßwort erfolgt ist, sonst 0
1, wenn der Benutzer Sysop-Status hat, sonst 0
User-Status (ALTER STATUS)
Help-Level (ALTER HELPLEVEL)
Einstiegsdigi (nur richtig, wenn der Connect ausschließlich über FlexNet-Digis erfolgt ist)
Datei, die nach Beendigung des Run-Utilities als Text ausgegeben wird
Datei, die nach Beendigung des Run-Utilities binär - allerdings ohne AutoBIN-Header - ausgegeben wird
Datei, die nach Beendigung des Run-Utilities im AutoBIN-Format ausgegeben wird
Datei, die nach Beendigung des Run-Utilities im YAPP-Protokoll ausgegeben wird
Datei, deren Inhalt nach Beendigung des Run-Utilities im Hintergrund als ausgeführt wird; die Abarbeitung der Befehle geschieht mit Sysop-Status und als Prozess-Rufzeichen wird das der Mailbox verwendet. Sind die letzteren beiden Eigenschaften nicht gewünscht, so kann
Datei, deren Inhalt nach Beendigung des Run-Utilities so abgearbeitet wird, als wären es Benutzereingaben gewesen
Befehlszeile des Benutzers, mit der der Aufruf des Run-Utilities erfolgte
Loginzeit im Unix-Format (Sekunden seit 1.1.1970)
Aktuelles Board
Aktueller Pfad im Filesurf
Die Auswertung der Informationen sollte unbedingt anhand der Schlüsselwörter erfolgen, und nicht anhand der Reihenfolge.
Die Datei-Namen bei den Schlüsselwörtern txt_output, bin_output, abinoutput, yappoutput, imp_output und user_imp sind eindeutige, temporäre Namen, die von der Box vorgegeben werden. Das Run-Utility sollte hier auch unbedingt längere Pfadnamen akzeptieren, damit künftig problemlos Änderungen auf Boxseite möglich sind. Achtung: Auch unter DOS und Windows NT werden als Pfadtrenner Slashes (``/''), und keine Backslahes (``\'') verwendet! Mit Ausnahme von ``imp_output'' werden alle Dateien nach der Ausgabe bzw. nach der Bearbeitung automatisch gelöscht.
Beispiel einer RUNDAT.BCM:
DL8MBT DF0AR Flori DL 0 1 0 2 TCP/IP call DL8MBT mybbs DF0AR name Flori language DL password 0 sysop 1 status 0 helplevel 2 digi DB0RGB-4 txt_output temp/69uccj0 bin_output temp/69uccj1 abinoutput temp/69uccj2.bin yappoutput temp/69uccj3 imp_output temp/69uccj4 user_imp temp/69uccj5 cmdline filesurf cmdmode login_time 860486538 board DL8MBT fspath /bcm/fs
Die Liste kann ggf. nach unten erweitert werden.
Nach Beendigung des Run-Utilities erfolgt die Bearbeitung der vom Run-Utility erzeugten Dateien und Ausgaben in folgender Reihenfolge (falls eine Datei nicht erzeugt wurde, geschieht einfach gar nichts):
Wie an den vielen Datei-Zugriffen zu sehen ist, ist für einen befriedigend schnellen Betrieb von Utilities ein ordentlicher Rechner notwendig.