home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 18 REXX / 18-REXX.zip / rxnet2.zip / TRY.CMD < prev    next >
OS/2 REXX Batch file  |  1993-09-13  |  5KB  |  220 lines

  1. /*
  2.     TRY.CMD Try NETAPI commands
  3.  
  4.     Commands:
  5.     API name    -    select API set to use
  6.     SERVER name -    select server to use
  7.     INFO level  -    show field names for api structures at 'level'
  8.  
  9. */
  10.  
  11. call rxfuncadd SysLoadFuncs, REXXUTIL, SysLoadFuncs
  12. call SysLoadFuncs
  13. call rxfuncadd NetLoadFuncs, REXXNET, NetLoadFuncs
  14. call NetLoadFuncs
  15.  
  16.   parse upper arg api server
  17.   if api = '' then
  18.     say 'Must Specific API before using'
  19.   if server = '' then do
  20.     say 'Server must be specified if other than local'
  21.     server = ''
  22.   end
  23.   trace = ''
  24.   call main
  25. done:
  26.   call NetDropFuncs
  27.   call SysDropFuncs
  28.   exit                  /* The only exit.           */
  29.  
  30. main:
  31.   trace 'Off'
  32.   do foreverrx = 1               /* Loop forever.         */
  33.     call charout '', "--> "
  34.     parse pull func args
  35.     if func = '' then
  36.     leave
  37.     parse upper var func func
  38.     if func = 'EXIT' then
  39.     leave
  40.     if func = 'SAY' then do
  41.     signal on syntax name again
  42.     interpret "say " args
  43.     iterate
  44.     end
  45.     if pos('=', args) then do
  46.     signal on syntax name again
  47.     interpret func args
  48.     iterate
  49.     end
  50.     if func = 'TRACE' then do
  51.     parse var args func args
  52.     trace all
  53.     end
  54.     else
  55.     trace (trace)       /* Need these on same line.    */
  56.     signal on syntax            /* Enable syntax trap.     */
  57.     interpret 'call ' func args
  58.     trace 'Off'                    /* Don't trace rexxtry.      */
  59.   end
  60.   signal done
  61.  
  62. syntax:
  63.   signal on syntax name external
  64.   call generic func args
  65.   signal main
  66.  
  67. external:
  68.   signal on syntax name again
  69.   interpret "'@"||func args "'"
  70.   signal main
  71.  
  72. again:
  73.   trace 'Off'
  74.   say rc ',' errortext(rc)
  75.   signal main
  76.  
  77. api:
  78.     parse upper var args api
  79.     return
  80.  
  81. server:
  82.     server = args
  83.     return
  84.  
  85. trace:
  86.     trace = args
  87.     return
  88.  
  89. exit:
  90.     signal done
  91.  
  92. drop:
  93.     drop args
  94.     return
  95.  
  96. cls:
  97.     call SysCls
  98.     return
  99.  
  100. /*
  101. *****************************************************
  102.     INFO    return Data structure members
  103. */
  104. info:
  105.     parse arg level
  106.     interpret 'call Net'||api||'Info level, Names.'
  107.     do i = 0 to Names.0
  108.     say Names.i
  109.     end
  110.     return
  111.  
  112. /*
  113. *****************************************************
  114.     ENUM    enumerate data
  115. */
  116. enum:
  117.     select
  118.     when api = 'ALIAS' then
  119.     parse var args level ',' type ',' stem ',' other
  120.     when api = 'APP' then
  121.     parse var args userid ',' level ',' type ',' stem ',' other
  122.     when api = 'ACCESS' then
  123.     parse var args base ',' recur ',' level ',' stem ',' other
  124.     otherwise
  125.     parse var args level ',' stem ',' other
  126.     end
  127.     interpret 'retc = Net'||api||func||'(' server ',' args ')'
  128.     if retc \= 0 then
  129.     call error
  130.     else
  131.     call show level stem 1 api
  132.     return
  133.  
  134. /*
  135. *****************************************************
  136.     GETINFO    get data on one entry
  137. */
  138. getinfo:
  139.     select
  140.     when api = 'APP' then
  141.     parse var args who ',' what ',' level ',' stem ',' other
  142.     when api = 'WKSTA' then
  143.     parse var args level ',' stem ',' other
  144.     when api = 'ACCESS' then
  145.     parse var args resource ',' level ',' stem ',' other
  146.     otherwise
  147.     parse var args who ',' level ',' stem ',' other
  148.     end
  149.     interpret 'retc = Net'||api||func||'(' server ',' args ')'
  150.     if retc \= 0 then
  151.     call error
  152.     else
  153.     call show level stem 0 api
  154.     return
  155.  
  156. /*
  157. *****************************************************
  158.     Generic functions - no return display
  159. */
  160.  
  161. generic:
  162.     interpret 'retc = Net'||api||func||'(' server ',' args ')'
  163.     call error
  164.     return
  165.  
  166.  
  167. /* ------------------------------------------- */
  168.  
  169. d:
  170.   parse arg Stem level newapi
  171.   call show level stem 0 newapi
  172.   return
  173.  
  174. de:
  175.   parse arg Stem level newapi
  176.   call show level stem 1 newapi
  177.   return
  178.  
  179.  
  180. show:
  181.   parse arg level Stem enum newapi
  182.   interpret 'call Net'||newapi||'Info level, Names.'
  183.  
  184.   if enum = 1 then do
  185.     interpret 'range =' Stem||'.Entries'
  186.     say range
  187.     do j = 0 to range - 1
  188.     interpret 'call showline' Stem||'.'||j
  189.     onscreen = 24 % Names.0
  190.     if j - (j % onscreen) * onscreen = onscreen - 1 then do
  191.         call charout '', "Pause.."
  192.         parse pull quit
  193.         if quit \= '' then
  194.         leave
  195.     end
  196.     end
  197.   end
  198.   else
  199.     call showline Stem
  200.   return
  201.  
  202. showline:
  203.   parse arg nstem
  204.   do i = 1 to Names.0
  205.     interpret 'say Names.i' nstem||'.'||Names.i
  206.   end
  207.   return
  208.  
  209. error:
  210.     if retc \= 0 then do
  211.     if retc < 2100 then
  212.         say SysGetMessage(retc)
  213.     else
  214.         say SysGetMessage(retc, "NET.MSG")
  215.     end
  216.     else
  217.     say "Completed Successfully"
  218.     return
  219.  
  220.