home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 2 BBS
/
02-BBS.zip
/
maxmsadd.zip
/
MAXMSADD.CMD
next >
Wrap
OS/2 REXX Batch file
|
1995-01-22
|
11KB
|
396 lines
/*Start */
If LoadRexxUtil() THEN
EXIT
cls = '1B'x||'[2J'
home = '1B'x||'[1;0H'
bcbl = '1B'x||'[;40m'
red = '1B'x||'[31m'
blue = '1B'x||'[34m'
white = '1B'x||'[37m'
yell = '1B'x||'[33m'
bacbla = '1B'x||'[30;44m'
cen = '1B'x||'[4;40H'
cen2 = '1B'x||'[7;40H'
l2 = '1B'x||'[3;1H'
l4 = '1B'x||'[4;1H'
error1 = '1B'x||'[10;0H'
error2 = '1B'x||'[21;0H'
bot = '1B'x||'[24;1H'
file2='temp.txt'
/* File and path */
AGAIN:
SAY cls
SAY blue||center('Maximus Message Area, Area Adder',79)
SAY bacbla||bot||left('Enter Full Path and File Name for Message .ctl File',79)||bcbl
SAY red||l2||'Enter Full path to Msgarea.ctl:'||white
CALL SysCurPos 2,31
PULL file
/* CALL Stream KBD,'C','OPEN'*/
/* file = LineIn() */
/* IF Stream(file,'S')=='READY' THEN */
/* END */
/* ELSE */
/* SAY red||l2||'Invalid filename and or path'*/
/* area */
SAY l2||left('',60)
SAY bcbl
SAY bcbl||bot||left('',79)
SAY bacbla||bot||left('Enter Area number',79)||bcbl
Say red||l2||'Area Number:'white
CALL SysCurPos 2,13
PULL ar
/* access */
SAY l2||left('',60)
SAY bcbl
SAY bcbl||bot||left('',79)
SAY bacbla||bot||left('Enter Access Priviledge ( i.e. twit)',79)||bcbl
Say red||l2||'Msgaccess:'white
CALL SysCurPos 2,11
PULL access
/* Type */
typ=TY()
/* msginfo */
SAY error1||bcbl||left('',79)
SAY l2||left('',60)
SAY bcbl
SAY bcbl||bot||left('',79)
SAY bacbla||bot||left('Enter Message Area Description',79)||bcbl
Say red||l2||'Area description:'white
CALL SysCurPos 2,18
PULL msgin
/* msgname */
SAY l2||left('',60)
SAY bcbl
SAY bcbl||bot||left('',79)
SAY bacbla||bot||left('Enter Area TAG',79)||bcbl
Say red||l2||'Area TAG:'white
CALL SysCurPos 2,10
PULL msgna
/* locorech */
locorech=LOC()
/* path */
SAY error1||bcbl||left('',79)
SAY l2||left('',60)
SAY bcbl
SAY bcbl||bot||left('',79)
SAY bacbla||bot||left('Enter Full Path to this Message Area',79)||bcbl
Say red||l2||'Area Path:'white
CALL SysCurPos 2,11
PULL pat
/* pri */
pri=PRIVATE()
/* real */
SAY error1||bcbl||left('',79)
real=REA()
/* anon */
SAY error1||bcbl||left('',79)
anon=ANO()
/* highbit */
SAY error1||bcbl||left('',79)
highbit=HIGHB()
/* renum max */
SAY error1||bcbl||left('',79)
SAY l2||left('',60)
SAY bcbl
SAY bcbl||bot||left('',79)
SAY bacbla||bot||left('Enter Maximum number of messages',79)||bcbl
Say red||l2||'Max number of Msg:'white
CALL SysCurPos 2,19
PULL maxnum
/* renum days */
SAY l2||left('',60)
SAY bcbl
SAY bcbl||bot||left('',79)
SAY bacbla||bot||left('Enter Number of days to keep messages',79)||bcbl
Say red||l2||'Max Days to keep Msg:'white
CALL SysCurPos 2,22
PULL maxday
/* origin */
SAY l2||left('',60)
SAY bcbl
SAY bcbl||bot||left('',79)
SAY bacbla||bot||left('Enter Origin line ( including origin number)',79)||bcbl
Say red||l2||'Origin:'white
CALL SysCurPos 2,8
PULL org
/* display input */
CALL SysCurPos 4,0
SAY white||'Path to msgarea.ctl 'yell||file
SAY white||'Area Number 'yell||ar
SAY white||'Msgaccess 'yell||access
SAY white||'Type 'yell||typ
SAY white||'Msginfo 'yell||msgin
SAY white||'Msgname 'yell||msgna
SAY white||'Local or what? 'yell||locorech
SAY white||'Area Path 'yell||pat
SAY white||'Private or what? 'yell||pri
SAY white||'Anonymous OK 'yell||anon
SAY white||'Use Real Name 'yell||real
SAY white||'High Bit allowed 'yell||highbit
SAY white||'Renum Max 'yell||maxnum
SAY white||'Renum Days 'yell||maxday
SAY white||'Origin 'yell||org
/* ask if all is OK */
ans=OK()
/* ask if to write */
/* SAY error2||bcbl||left('',79)
ans2=OK2() */
/* Open file for read & write */
CALL STREAM file2,'C','OPEN'
IF STREAM(file2,'S')=='READY' THEN
DO
/* Position at current end of file */
/* CALL STREAM file2,'C','SEEK><0'*/
/* Write record */
CALL LINEOUT file2,""
CALL LINEOUT file2,'Area' ar
CALL LINEOUT file2,'Msgaccess' access
CALL LINEOUT file2,'Type' typ
CALL LINEOUT file2,'Msginfo' msgin
CALL LINEOUT file2,'Msgname' msgna
CALL LINEOUT file2,locorech pat
CALL LINEOUT file2,pri
IF real='YES' THEN
CALL LINEOUT file2,'Use RealName'
ELSE
nop
IF anon='YES' THEN
CALL LINEOUT file2,'Anonymous OK'
ELSE
nop
IF highbit='YES' THEN
CALL LINEOUT file2,'High Bit allowed'
ELSE
nop
CALL LINEOUT file2,'Renum Max' maxnum
CALL LINEOUT file2,'Renum Days' maxday
CALL LINEOUT file2,'Origin' org
CALL LINEOUT file2,'END AREA'
/* Now close the file */
CALL STREAM file2,'C','CLOSE'
END
ELSE /* It's locked */
SAY 'Unable to open '||'file'
copy file'+'file2
SAY cls
del file2
SAY cls
/* ask if do another */
SAY error2||bcbl||left('',79)
SAY blue||home||center('Maximus Message Area, Area Adder',79)
ans3=OK3()
SAY cls
EXIT
/* Load the RExxUtil Library */
LoadRexxUtil: PROCEDURE
IF RxFuncQuery('SysLoadFuncs') THEN
DO
IF RXFuncAdd('SysLoadFuncs','RexxUtil','SysLoadFuncs') THEN
DO
SAY "Error: Couldn't load RexxUtil Library."
RETURN 1
END
CALL SysLoadFuncs
END
RETURN 0
/* HIGHBIT */
HIGHB:
SAY l2||left('',60)
SAY bcbl
SAY bcbl||bot||left('',79)
SAY bacbla||bot||left('Enter Yes or No',79)||bcbl
Say red||l2||'Allow Highbit?:'white
CALL SysCurPos 2,16
PULL highbit
SELECT
WHEN highbit='YES' THEN
highbit='YES'
WHEN highbit='NO' THEN
highbit='NO'
OTHERWISE
Say yell||error1||'Only YES or NO is allowed TRY again!'
highbit=HIGHB()
END
RETURN highbit
/* anon */
ANO:
SAY l2||left('',60)
SAY bcbl
SAY bcbl||bot||left('',79)
SAY bacbla||bot||left('Enter Yes or No',79)||bcbl
Say red||l2||'Anonymous OK?:'white
CALL SysCurPos 2,16
PULL anon
SELECT
WHEN anon=real THEN
Say yell||error1||'You can not use anonymous and real names together!'
WHEN anon=real THEN
anon=ANO()
WHEN anon='YES' THEN
anon='YES'
WHEN anon='NO' THEN
anon='NO'
OTHERWISE
Say yell||error1||'Only YES or NO is allowed TRY again!'
anon=ANO()
END
RETURN anon
/* real */
REA:
SAY l2||left('',60)
SAY bcbl
SAY bcbl||bot||left('',79)
SAY bacbla||bot||left('Enter Yes or No',79)||bcbl
Say red||l2||'Use Real Name?:'white
CALL SysCurPos 2,16
PULL real
SELECT
WHEN real='YES' THEN
real='YES'
WHEN real='NO' THEN
real='NO'
WHEN anon
OTHERWISE
Say yell||error1||'Only YES or NO is allowed TRY again!'
real =REA()
END
RETURN real
/* pri */
PRIVATE:
SAY l2||left('',60)
SAY bcbl
SAY bcbl||bot||left('',79)
SAY bacbla||bot||left('Enter Private Only, Public and Privite,Public Only, or Read Only',79)||bcbl
Say red||l2||'Message From field:'white
CALL SysCurPos 2,20
PULL pri
SELECT
WHEN pri='PRIVATE ONLY' THEN
pri='PRIVATE ONLY'
WHEN pri='PUBLIC AND PRIVATE' THEN
pri='PUBLIC AND PRIVATE'
WHEN pri='PUBLIC ONLY' THEN
pri='PUBLIC ONLY'
WHEN pri='READ ONLY' THEN
pri='READ ONLY'
OTHERWISE
Say yell||error1||'Only Private Only,Public Only, Public and Private, or Read Only is allowed.'
pri=PRIVATE()
END
RETURN pri
/* locorech */
LOC:
SAY l2||left('',60)
SAY bcbl
SAY bcbl||bot||left('',79)
SAY bacbla||bot||left('Enter Local, EchoMail, or Matrix ',79)||bcbl
Say red||l2||'Area type:'white
CALL SysCurPos 2,11
PULL locorech
SELECT
WHEN locorech='LOCAL' THEN
locorech='LOCAL'
WHEN locorech='ECHOMAIL' THEN
locorech='ECHOMAIL'
WHEN locorech='MATRIX' THEN
locorech='MATRIX'
OTHERWISE
Say yell||error1||'Only Local, Echomail, or Matrix is allowed.'
locorech=LOC()
END
RETURN locorech
/* type */
TY:
SAY l2||left('',60)
SAY bcbl
SAY bcbl||bot||left('',79)
SAY bacbla||bot||left('Enter Area Message Format ( Squish or *.MSG)',79)||bcbl
Say red||l2||'Format:'white
CALL SysCurPos 2,8
PULL typ
SELECT
WHEN typ='SQUISH' THEN
typ='SQUISH'
WHEN typ='*.MSG' THEN
typ='*.MSG'
OTHERWISE
Say yell||error1||'Only Squish or *.MSG is allowed.'
typ=TY()
END
RETURN typ
/* ask if all is OK */
OK:
SAY l2||left('',60)
SAY bcbl
SAY bcbl||bot||left('',79)
SAY bacbla||bot||left('Enter Yes or No',79)||bcbl
Say red||l2||'Is this correct?:'white
CALL SysCurPos 2,18
PULL ans
SELECT
WHEN ans='YES' THEN
ans='YES'
WHEN ans='NO' THEN
SIGNAL AGAIN
OTHERWISE
Say yell||error2||'Only YES or NO is allowed TRY again!'
ans=OK()
END
RETURN ans
/* is ok to write to msg.ctl? */
/*OK2:
SAY l2||left('',60)
SAY bcbl
SAY bcbl||bot||left('',79)
SAY bacbla||bot||left('Enter Yes or No',79)||bcbl
Say red||l2||'Write to msgarea.ctl?:'white
CALL SysCurPos 2,23
PULL ans2
SELECT
WHEN ans2='YES' THEN
ans2='YES'
WHEN ans2='NO' THEN
ans2='NO'
OTHERWISE
Say yell||error2||'Only YES or NO is allowed TRY again!'
ans2=OK2()
END
RETURN ans2*/
/* ask if do another */
OK3:
SAY l2||left('',60)
SAY bcbl
SAY bcbl||bot||left('',79)
SAY bacbla||bot||left('Enter Yes or No',79)||bcbl
Say red||l2||'Add another Area?:'white
CALL SysCurPos 2,19
PULL ans3
SELECT
WHEN ans3='YES' THEN
SIGNAL AGAIN
WHEN ans3='NO' THEN
SAY error2||bcbl||left('',79)
OTHERWISE
Say yell||error2||'Only YES or NO is allowed TRY again!'
ans3=OK3()
END
RETURN ans3