8. September 2024

Amiga Multiuser Mailbox System

Amiga-Dos-Batches im File-System

                      Amiga-Dos-Batches im File-System
                      --------------------------------


In den Verzeichnissen

MBBATCH:DOWNLOAD/               Aufruf nach vollstaendigen Download
MBBATCH:FILEBATCH1/             Aufruf durch Taste 1
MBBATCH:FILEBATCH2/             Aufruf durch Taste 2
MBBATCH:FILEBATCH3/             Aufruf durch Taste 3
MBBATCH:FILEBATCH4/             Aufruf durch Taste 4
MBBATCH:FILEBATCH5/             Aufruf durch Taste 5
MBBATCH:FILEBATCH6/             Aufruf durch Taste 6
MBBATCH:FILEBATCH7/             Aufruf durch Taste 7
MBBATCH:FILEBATCH8/             Aufruf durch Taste 8
MBBATCH:FILECHECK/              Aufruf durch Taste C
MBBATCH:FILELIST/               Aufruf durch Taste v
MBBATCH:UPLOAD/                 Aufruf nach vollstaendigen Upload

liegen alle Amiga-Dos-Batches, die beim File-System ausgefuehrt werden.
Ihre Namen muessen immer der Endung des Files entsprechen (z.B. GIF beim
File ANETTE.GIF), die beim File-System bearbeitet werden sollen.


Die Amiga-Dos-Batches sind frei programmierbar, beim Upload, Download,
File listen und File pruefen sollten aber solche Funktionen vorgesehen
werden. Die Funktionen der Batches der Tasten 1 bis 8 sind allerdings
absolut frei waehlbar.


Diesen Amiga-Dos-Batches werden ueber folgende Variablen Informationen
zur Verfuegung gestellt :

${BOARD}        Brettname (leer, wenn kein Brett)
${CLS}          AMMS-Sequence zum Loeschen des Screens (sethflags t1)
${CON}          Port-Consolen-Status (0=keine Console,1=Console)
${FILE}         Pfadname+Filename
${FILEPART}     Filename
${PATHPART}     Pfadname
${LEVEL}        Level des Users
${NAME}         Username
${PORT}         Aktueller Portname
${SYSOPACC}     Sysop-Zugriff auf File (0=kein Zugriff,1=Zugriff)
${DOWNACC}      Download-Zugriff auf File (0=kein Zugriff,1=Zugriff)
${UPACC}        Upload-Zugriff auf File (0=kein Zugriff,1=Zugriff)
${DELACC}       Loesch-Zugriff auf File (0=kein Zugriff,1=Zugriff)
${OWNER}        Uploader des File (0=nein,1=ja)


Ueber den DOS-Befehl AMMS:C/SETHFLAGS kann auf die Ein-/Ausgabe direkt
Einfluss genommen werden :

Beeinflussung der Ein-/Ausgabe: sethflags <Flags>
-------------------------------------------------
Flags:  AN      AUS     Funktion
             (Default)
        r1      r0      Raw-Eingabe
        o1      o0      Raw-Ausgabe
        m1      m0      More ein
        t1      t0      AMMS-Textfunktionen anzeigen
        c1      c0      CTRL-C erlaubt
        x1      x0      CTRL-X erlaubt (entspricht CTRL-D im Amiga-Dos)
        e1      e0      Bei Fehler -> CTRL-C
        f1      f0      Bei Fehler -> CTRL-X

Beispiel: sethflags r1o1c0x0


Damit das File-System auch Informationen nach Beendigung der Amiga-Dos-Batch
erhalten kann, existiert der Befehl AMMS:C/SETRETURN :

Rueckgabewert : setreturn "[Parameter] [Parameter] [...]"
---------------------------------------------------------
CHANGEDAT       Filedaten wurden geaendert (z.B. Laenge)
COMMENT=<Str>   Aendere Kurz-Kommentar zum angegebenen String
DELETE          Loesche File
ECOMMENT        Extra-Kommentar existiert (z.B. Vorgabe beim Upload)
NOEDIT          Keine Extra-Kommentar-Eingabe beim Upload
REFRESH         Screen muss wegen Ausgaben neu aufgebaut werden
REFRESHLINE     Zeile wegen Datenaenderung neu aufbauen
RENAME=<Name>   File in den angegebenen Namen umbenennen
WAIT            Auf Taste warten (inc. Warte-Text)

Beispiel: setreturn WAIT REFRESH COMMENT="Ein Kommentar"


Als Beispiel folgt nun eine Amiga-Dos-Batch, die beim Upload eines LHA
Archives aktiviert wird und dabei das File FILE_ID.DIZ  extrahiert und
zum Extra-Kommentar macht. Existiert dieses File nich im Archiv, so
muss der User einen Extra-Kommentar selber eingeben :

set RETURN "REFRESH"                    ; Bildschirmrefresh am Ende
setreturn ${RETURN}                     ; Rueckgabewert speichern

sethflags t1m1                          ; Textfunktionen an, More an
echo "${CLS}"                           ; Bildschirm loeschen
sethflags t0                            ; Textfunktionen aus

; Existiert das File lharemove, so sollen alle darin angegebenen Files
; aus dem Archiv geloescht werden

if exists "mbbatch:upload/lharemove"
 lha <nil: >nil: -P-1 -imbbatch:upload/lharemove d "${FILE}"
endif

; Handelt es sich um ein Brett, so soll das File FILE_ID.DIZ extrahiert
; werden und zum Extra-Kommentar umbenannt werden.
; Existiert es nicht, so soll der User einen Extra-Kommentar nach dem
; Ende dieser Batch eingeben.

if "${BOARD}" NOT EQ ""
 delete >nil: "mbmsg:point/${PORT}/File_ID.diz"
 lha <nil: >nil: -P-1 x "${FILE}" "mbmsg:point/${PORT}/" File_ID.diz
 if exists "mbmsg:point/${PORT}/File_ID.diz"
  echo "Using File_ID.diz from Archive."
  copy >nil: "mbmsg:point/${PORT}/File_ID.diz" "${FILE}@HLP"
  delete >nil: "mbmsg:point/${PORT}/File_ID.diz"
  setreturn ${RETURN} ECOMMENT NOEDIT
 endif
endif