home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 2 BBS / 02-BBS.zip / maxmsadd.zip / MAXMSADD.CMD next >
OS/2 REXX Batch file  |  1995-01-22  |  11KB  |  396 lines

  1. /*Start */
  2. If LoadRexxUtil() THEN
  3.    EXIT
  4.  
  5.    cls = '1B'x||'[2J'
  6.    home = '1B'x||'[1;0H'
  7.    bcbl = '1B'x||'[;40m'
  8.    red = '1B'x||'[31m'
  9.    blue = '1B'x||'[34m'
  10.    white = '1B'x||'[37m' 
  11.    yell = '1B'x||'[33m'
  12.    bacbla =  '1B'x||'[30;44m'
  13.    cen = '1B'x||'[4;40H'
  14.    cen2 = '1B'x||'[7;40H' 
  15.    l2 = '1B'x||'[3;1H'
  16.    l4 = '1B'x||'[4;1H'
  17.    error1 = '1B'x||'[10;0H'
  18.    error2 = '1B'x||'[21;0H'
  19.    bot = '1B'x||'[24;1H'
  20.    file2='temp.txt'
  21.  
  22.    /* File and path */
  23.    AGAIN:
  24.    SAY cls
  25.    SAY blue||center('Maximus Message Area, Area Adder',79)
  26.    SAY bacbla||bot||left('Enter Full Path and File Name for Message .ctl File',79)||bcbl
  27.    SAY red||l2||'Enter Full path to Msgarea.ctl:'||white
  28.    CALL SysCurPos 2,31
  29.    PULL file
  30.   /* CALL Stream KBD,'C','OPEN'*/
  31.   /* file = LineIn()   */
  32.   /* IF Stream(file,'S')=='READY' THEN */
  33.   /*      END    */
  34.   /*   ELSE   */
  35.   /*   SAY red||l2||'Invalid filename and or path'*/
  36.  
  37.    /* area */
  38.    SAY l2||left('',60)
  39.    SAY bcbl
  40.    SAY bcbl||bot||left('',79)
  41.    SAY bacbla||bot||left('Enter Area number',79)||bcbl
  42.    Say red||l2||'Area Number:'white
  43.    CALL SysCurPos 2,13
  44.    PULL ar
  45.    /* access */
  46.    SAY l2||left('',60)
  47.    SAY bcbl
  48.    SAY bcbl||bot||left('',79)
  49.    SAY bacbla||bot||left('Enter Access Priviledge ( i.e. twit)',79)||bcbl
  50.    Say red||l2||'Msgaccess:'white
  51.    CALL SysCurPos 2,11
  52.    PULL access
  53.    /* Type */
  54.    typ=TY()
  55.    /* msginfo */
  56.    SAY error1||bcbl||left('',79)
  57.    SAY l2||left('',60)
  58.    SAY bcbl
  59.    SAY bcbl||bot||left('',79)
  60.    SAY bacbla||bot||left('Enter Message Area Description',79)||bcbl
  61.    Say red||l2||'Area description:'white
  62.    CALL SysCurPos 2,18
  63.    PULL msgin
  64.    /* msgname */
  65.    SAY l2||left('',60)
  66.    SAY bcbl
  67.    SAY bcbl||bot||left('',79)
  68.    SAY bacbla||bot||left('Enter Area TAG',79)||bcbl
  69.    Say red||l2||'Area TAG:'white
  70.    CALL SysCurPos 2,10
  71.    PULL msgna
  72.    /* locorech */
  73.    locorech=LOC()
  74.    /* path */
  75.    SAY error1||bcbl||left('',79)
  76.    SAY l2||left('',60)
  77.    SAY bcbl
  78.    SAY bcbl||bot||left('',79)
  79.    SAY bacbla||bot||left('Enter Full Path to this Message Area',79)||bcbl
  80.    Say red||l2||'Area Path:'white
  81.    CALL SysCurPos 2,11
  82.    PULL pat
  83.    /* pri */
  84.    pri=PRIVATE()
  85.    /* real */
  86.    SAY error1||bcbl||left('',79)
  87.    real=REA()
  88.    /* anon */
  89.    SAY error1||bcbl||left('',79)
  90.    anon=ANO()
  91.    /* highbit */
  92.    SAY error1||bcbl||left('',79)
  93.    highbit=HIGHB()
  94.    /* renum max */
  95.    SAY error1||bcbl||left('',79)
  96.    SAY l2||left('',60)
  97.    SAY bcbl
  98.    SAY bcbl||bot||left('',79)
  99.    SAY bacbla||bot||left('Enter Maximum number of messages',79)||bcbl
  100.    Say red||l2||'Max number of Msg:'white
  101.    CALL SysCurPos 2,19
  102.    PULL maxnum
  103.    /* renum days */
  104.    SAY l2||left('',60)
  105.    SAY bcbl
  106.    SAY bcbl||bot||left('',79)
  107.    SAY bacbla||bot||left('Enter Number of days to keep messages',79)||bcbl
  108.    Say red||l2||'Max Days to keep Msg:'white
  109.    CALL SysCurPos 2,22
  110.    PULL maxday
  111.    /* origin */
  112.    SAY l2||left('',60)
  113.    SAY bcbl
  114.    SAY bcbl||bot||left('',79)
  115.    SAY bacbla||bot||left('Enter Origin line ( including origin number)',79)||bcbl
  116.    Say red||l2||'Origin:'white
  117.    CALL SysCurPos 2,8
  118.    PULL org
  119.  
  120.    /* display input */
  121.    CALL SysCurPos 4,0
  122.    SAY white||'Path to msgarea.ctl  'yell||file
  123.    SAY white||'Area Number          'yell||ar 
  124.    SAY white||'Msgaccess            'yell||access     
  125.    SAY white||'Type                 'yell||typ          
  126.    SAY white||'Msginfo              'yell||msgin       
  127.    SAY white||'Msgname              'yell||msgna       
  128.    SAY white||'Local or what?       'yell||locorech      
  129.    SAY white||'Area Path            'yell||pat
  130.    SAY white||'Private or what?     'yell||pri
  131.    SAY white||'Anonymous OK         'yell||anon
  132.    SAY white||'Use Real Name        'yell||real
  133.    SAY white||'High Bit allowed     'yell||highbit
  134.    SAY white||'Renum Max            'yell||maxnum     
  135.    SAY white||'Renum Days           'yell||maxday
  136.    SAY white||'Origin               'yell||org
  137.  
  138.    /* ask if all is OK */
  139.    ans=OK()
  140.    /* ask if to write */
  141. /*   SAY error2||bcbl||left('',79)
  142.    ans2=OK2() */
  143.  
  144. /* Open file for read & write */
  145.    CALL  STREAM file2,'C','OPEN'
  146.  
  147.    IF STREAM(file2,'S')=='READY' THEN
  148.    DO     
  149.       /* Position at current end of file */
  150.       /* CALL STREAM file2,'C','SEEK><0'*/    
  151.  
  152.       /* Write  record */
  153.    CALL LINEOUT file2,""
  154.    CALL LINEOUT file2,'Area' ar 
  155.    CALL LINEOUT file2,'Msgaccess' access     
  156.    CALL LINEOUT file2,'Type' typ          
  157.    CALL LINEOUT file2,'Msginfo' msgin       
  158.    CALL LINEOUT file2,'Msgname' msgna       
  159.    CALL LINEOUT file2,locorech pat     
  160.    CALL LINEOUT file2,pri
  161.    IF real='YES' THEN
  162.    CALL LINEOUT file2,'Use RealName'        
  163.    ELSE
  164.         nop
  165.    IF anon='YES' THEN
  166.    CALL LINEOUT file2,'Anonymous OK'  
  167.    ELSE
  168.         nop
  169.    IF highbit='YES' THEN
  170.    CALL LINEOUT file2,'High Bit allowed'
  171.    ELSE
  172.         nop
  173.    CALL LINEOUT file2,'Renum Max' maxnum     
  174.    CALL LINEOUT file2,'Renum Days' maxday
  175.    CALL LINEOUT file2,'Origin' org
  176.    CALL LINEOUT file2,'END AREA'
  177.  
  178.       /* Now close the file */
  179.        CALL STREAM file2,'C','CLOSE'
  180.    END
  181.    ELSE /* It's locked */
  182.       SAY 'Unable to open '||'file' 
  183.    copy file'+'file2   
  184.    SAY cls
  185.    del file2
  186.    SAY cls
  187.    /* ask if do another */
  188.    SAY error2||bcbl||left('',79)
  189.    SAY blue||home||center('Maximus Message Area, Area Adder',79)
  190.    ans3=OK3()  
  191.    SAY cls
  192.    EXIT
  193.  
  194. /* Load the RExxUtil Library */   
  195. LoadRexxUtil: PROCEDURE
  196.    IF RxFuncQuery('SysLoadFuncs') THEN
  197.    DO
  198.    IF RXFuncAdd('SysLoadFuncs','RexxUtil','SysLoadFuncs') THEN
  199.       DO
  200.       SAY "Error: Couldn't load RexxUtil Library."
  201.       RETURN 1
  202.       END
  203.    CALL SysLoadFuncs
  204.    END
  205. RETURN 0
  206.  
  207. /* HIGHBIT */
  208. HIGHB: 
  209.    SAY l2||left('',60)
  210.    SAY bcbl
  211.    SAY bcbl||bot||left('',79)
  212.    SAY bacbla||bot||left('Enter Yes or No',79)||bcbl
  213.    Say red||l2||'Allow Highbit?:'white
  214.    CALL SysCurPos 2,16
  215.    PULL highbit
  216.    SELECT
  217.    WHEN highbit='YES' THEN
  218.         highbit='YES'
  219.    WHEN highbit='NO' THEN
  220.         highbit='NO'
  221.    OTHERWISE    
  222.         Say yell||error1||'Only YES or NO is allowed TRY again!'
  223.         highbit=HIGHB()
  224.    END            
  225. RETURN highbit
  226. /* anon */
  227. ANO:
  228.    SAY l2||left('',60)
  229.    SAY bcbl
  230.    SAY bcbl||bot||left('',79)
  231.    SAY bacbla||bot||left('Enter Yes or No',79)||bcbl
  232.    Say red||l2||'Anonymous OK?:'white
  233.    CALL SysCurPos 2,16
  234.    PULL anon
  235.    SELECT
  236.    WHEN anon=real THEN
  237.         Say yell||error1||'You can not use anonymous and real names together!'
  238.    WHEN anon=real THEN     
  239.         anon=ANO()
  240.    WHEN anon='YES' THEN
  241.         anon='YES'
  242.    WHEN anon='NO' THEN
  243.         anon='NO'
  244.    OTHERWISE    
  245.         Say yell||error1||'Only YES or NO is allowed TRY again!'
  246.         anon=ANO()
  247.    END            
  248. RETURN anon
  249.  
  250. /* real */
  251. REA:
  252.    SAY l2||left('',60)
  253.    SAY bcbl
  254.    SAY bcbl||bot||left('',79)
  255.    SAY bacbla||bot||left('Enter Yes or No',79)||bcbl
  256.    Say red||l2||'Use Real Name?:'white
  257.    CALL SysCurPos 2,16
  258.    PULL real
  259.    SELECT
  260.    WHEN real='YES' THEN
  261.         real='YES'
  262.    WHEN real='NO' THEN
  263.         real='NO'
  264.    WHEN anon
  265.    OTHERWISE    
  266.         Say yell||error1||'Only YES or NO is allowed TRY again!'
  267.         real =REA()
  268.    END            
  269. RETURN  real
  270. /* pri */
  271. PRIVATE:
  272.    SAY l2||left('',60)
  273.    SAY bcbl
  274.    SAY bcbl||bot||left('',79)
  275.    SAY bacbla||bot||left('Enter Private Only, Public and Privite,Public Only, or Read Only',79)||bcbl
  276.    Say red||l2||'Message From field:'white
  277.    CALL SysCurPos 2,20
  278.    PULL pri
  279.    SELECT
  280.    WHEN pri='PRIVATE ONLY' THEN
  281.         pri='PRIVATE ONLY'
  282.    WHEN pri='PUBLIC AND PRIVATE' THEN
  283.         pri='PUBLIC AND PRIVATE'
  284.    WHEN pri='PUBLIC ONLY' THEN
  285.         pri='PUBLIC ONLY'
  286.    WHEN pri='READ ONLY' THEN
  287.         pri='READ ONLY'
  288.    OTHERWISE    
  289.         Say yell||error1||'Only Private Only,Public Only, Public and Private, or Read Only is allowed.'
  290.         pri=PRIVATE()
  291.    END            
  292. RETURN  pri
  293.  
  294. /* locorech */
  295. LOC:
  296.    SAY l2||left('',60)
  297.    SAY bcbl
  298.    SAY bcbl||bot||left('',79)
  299.    SAY bacbla||bot||left('Enter Local, EchoMail, or Matrix ',79)||bcbl
  300.    Say red||l2||'Area type:'white
  301.    CALL SysCurPos 2,11
  302.    PULL locorech
  303.    SELECT
  304.    WHEN locorech='LOCAL' THEN
  305.         locorech='LOCAL'
  306.    WHEN locorech='ECHOMAIL' THEN
  307.         locorech='ECHOMAIL'
  308.    WHEN locorech='MATRIX' THEN
  309.         locorech='MATRIX'
  310.    OTHERWISE    
  311.         Say yell||error1||'Only Local, Echomail, or Matrix is allowed.'
  312.         locorech=LOC()
  313.    END            
  314. RETURN  locorech
  315.  
  316. /* type */
  317. TY:
  318.    SAY l2||left('',60)
  319.    SAY bcbl
  320.    SAY bcbl||bot||left('',79)
  321.    SAY bacbla||bot||left('Enter Area Message Format ( Squish or *.MSG)',79)||bcbl
  322.    Say red||l2||'Format:'white
  323.    CALL SysCurPos 2,8
  324.    PULL typ
  325.    SELECT
  326.    WHEN typ='SQUISH' THEN
  327.         typ='SQUISH'
  328.    WHEN typ='*.MSG' THEN
  329.         typ='*.MSG'
  330.    OTHERWISE    
  331.         Say yell||error1||'Only Squish or *.MSG is allowed.'
  332.         typ=TY()
  333.    END            
  334. RETURN  typ
  335.  
  336. /* ask if all is OK */
  337. OK:
  338.    SAY l2||left('',60)
  339.    SAY bcbl
  340.    SAY bcbl||bot||left('',79)
  341.    SAY bacbla||bot||left('Enter Yes or No',79)||bcbl
  342.    Say red||l2||'Is this correct?:'white
  343.    CALL SysCurPos 2,18
  344.    PULL ans
  345.    SELECT
  346.    WHEN ans='YES' THEN
  347.         ans='YES'
  348.    WHEN ans='NO' THEN
  349.         SIGNAL AGAIN
  350.    OTHERWISE    
  351.         Say yell||error2||'Only YES or NO is allowed TRY again!'
  352.         ans=OK()
  353.    END            
  354. RETURN  ans
  355.  
  356. /* is ok to write to msg.ctl? */
  357. /*OK2:
  358.    SAY l2||left('',60)
  359.    SAY bcbl
  360.    SAY bcbl||bot||left('',79)
  361.    SAY bacbla||bot||left('Enter Yes or No',79)||bcbl
  362.    Say red||l2||'Write to msgarea.ctl?:'white
  363.    CALL SysCurPos 2,23
  364.    PULL ans2
  365.    SELECT
  366.    WHEN ans2='YES' THEN
  367.         ans2='YES'
  368.    WHEN ans2='NO' THEN
  369.         ans2='NO'
  370.    OTHERWISE    
  371.         Say yell||error2||'Only YES or NO is allowed TRY again!'
  372.         ans2=OK2()
  373.    END            
  374. RETURN  ans2*/
  375.  
  376. /* ask if do another */
  377. OK3:
  378.    SAY l2||left('',60)
  379.    SAY bcbl
  380.    SAY bcbl||bot||left('',79)
  381.    SAY bacbla||bot||left('Enter Yes or No',79)||bcbl
  382.    Say red||l2||'Add another Area?:'white
  383.    CALL SysCurPos 2,19
  384.    PULL ans3
  385.    SELECT
  386.    WHEN ans3='YES' THEN
  387.         SIGNAL AGAIN 
  388.    WHEN ans3='NO' THEN
  389.         SAY error2||bcbl||left('',79)
  390.    OTHERWISE    
  391.         Say yell||error2||'Only YES or NO is allowed TRY again!'
  392.         ans3=OK3()
  393.    END            
  394. RETURN  ans3 
  395.  
  396.