Next Previous Contents

16. Externe Programme

Von der Mailbox aus können externe Programme aufgerufen werden. Bestimmte Programme können für Benutzer freigegeben werden.

16.1 Ausführung externer Programme durch einen Sysop

Der Aufruf von einem beliebigen externen Programm erfolgt für den Sysop durch die Eingabe von OSHELL <Programm-Name> <Parameter>.

16.2 Ausführung externer Programme durch einen User

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:

Befehl

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.

Programm

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.

Optionen

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:

Kommentar

Eine kurze Beschreibung der Funktion des Run-Utilities (< 80 Zeichen).

Außerdem gelten folgende Regeln für diese Datei:

16.3 Anforderungen an externe Programme

Das aufgerufene Programm muß folgende Eigenschaften haben:

Unter DOS:

Unter Linux:

Unter Windows NT:

16.4 Übergabe der Parameter an das Run-Utility

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.

16.5 Aufbau der Datei RUNDAT.BCM

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

Call ohne SSID

mybbs

MyBBS (ALTER FORWARD)

name

Name (ALTER NAME)

language

Sprache (ALTER SPEECH)

password

1, wenn der Login mit Paßwort erfolgt ist, sonst 0

sysop

1, wenn der Benutzer Sysop-Status hat, sonst 0

status

User-Status (ALTER STATUS)

helplevel

Help-Level (ALTER HELPLEVEL)

digi

Einstiegsdigi (nur richtig, wenn der Connect ausschließlich über FlexNet-Digis erfolgt ist)

txt_output

Datei, die nach Beendigung des Run-Utilities als Text ausgegeben wird

bin_output

Datei, die nach Beendigung des Run-Utilities binär - allerdings ohne AutoBIN-Header - ausgegeben wird

abinoutput

Datei, die nach Beendigung des Run-Utilities im AutoBIN-Format ausgegeben wird

yappoutput

Datei, die nach Beendigung des Run-Utilities im YAPP-Protokoll ausgegeben wird

imp_output

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

Soll diese Datei nach der Ausführung gelöscht werden, so ist an beliebiger Stelle der Befehl ``IMPDEL'' ohne Parameter einzufügen.

user_imp

Datei, deren Inhalt nach Beendigung des Run-Utilities so abgearbeitet wird, als wären es Benutzereingaben gewesen

cmd_line

Befehlszeile des Benutzers, mit der der Aufruf des Run-Utilities erfolgte

login_time

Loginzeit im Unix-Format (Sekunden seit 1.1.1970)

board

Aktuelles Board

fspath

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.


Next Previous Contents