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