home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Amiga 13 / MA_Cover_13.bin / source / c / stefanb_src / ums / rexx / addalias.rexx < prev    next >
Encoding:
OS/2 REXX Batch file  |  1996-01-12  |  1.9 KB  |  104 lines

  1. /* ------------------------------------------------------------------------
  2.    :Program.    AddAlias.rexx
  3.    :Contents.   adds aliases to UMS user
  4.    :Author.     Kai Bolay [kai]
  5.    :Address.    Snail Mail:
  6.    :Address.    Hoffmannstraße 168
  7.    :Address.    D-71229 Leonberg        EMail: kai@studbox.uni-stuttgart.de
  8.    :History.    v1.0 [kai] 13-Jan-96
  9.    :Version.    $VER: AddAlias.rexx 1.0 (13.1.96)
  10.    :Copyright.  Public Domain
  11.    :Language.   ARexx
  12.    :Translator. RexxMast
  13. ------------------------------------------------------------------------ */
  14.  
  15. options results
  16.  
  17. signal on BREAK_C
  18. signal on BREAK_D
  19. signal on BREAK_E
  20. signal on BREAK_F
  21. signal on ERROR
  22. signal on HALT
  23. signal on IOERR
  24. signal on SYNTAX
  25.  
  26. /*** Init ***/
  27.  
  28. call addlib("rexxdossupport.library", 0, -30)
  29. call addlib("ums.library", 0, -210, 11)
  30. call UMSInitConsts()
  31.  
  32. /*** Arguments ***/
  33.  
  34. parse SOURCE . " " . " " ProgramName .
  35. ArgsTemplate = "NAME/A,PWD,SERVER/K,USER/A,ALIASES/M"
  36. args.SERVER = ""
  37. args.PWD = ""
  38.  
  39. parse arg arguments
  40. if strip(arguments) = '?' then do
  41.   call writech(STDOUT, ArgsTemplate || ': ')
  42.   arguments = readln(STDIN)
  43. end; else nop
  44. if ~ReadArgs(arguments,ArgsTemplate,"args.") then do
  45.   say Fault(RC, ProgramName)
  46.   exit 10
  47. end; else nop
  48.  
  49. /*** Login ***/
  50.  
  51. account = UMSLogin(args.name, args.pwd, args.server)
  52. if account = 0 then do
  53.   say "unable to login."
  54.   exit 10
  55. end
  56.  
  57. /*** Do the magic ***/
  58.  
  59. do i = 0 TO args.ALIASES.COUNT-1
  60.   if ~UMSCreateAlias(account,args.USER,args.ALIASES.i) then do
  61.     call CheckErr
  62.     rc = 20; call logout
  63.   end
  64. end
  65.  
  66. /*** Final cleanup ***/
  67.  
  68. BREAK_C:
  69. BREAK_D:
  70. BREAK_E:
  71. BREAK_F:
  72.  
  73. RC = 0
  74.  
  75. ERROR:
  76. HALT:
  77. IOERR:
  78. SYNTAX:
  79.  
  80. IF RC ~= 0 THEN DO
  81.   SAY "Error: " rc errortext(rc) "Line" sigl
  82.   rc = 20
  83. END
  84.  
  85. /*** Logout ***/
  86.  
  87. LOGOUT:
  88.  
  89. if account ~= 0 then do
  90.   call UMSLogout(account)
  91.   account = 0
  92. end
  93.  
  94. exit rc
  95.  
  96. /*** Support ***/
  97.  
  98. CheckErr: procedure expose account
  99.   err = UMSErrNum(account)
  100.   if err ~= 0 then do
  101.     say "UMS Error #" || err || ": " || UMSErrTxt(account)
  102.   end
  103. return
  104.