home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / ldaptool.zip / lookup.cmd < prev   
OS/2 REXX Batch file  |  1998-05-29  |  3KB  |  96 lines

  1. /* X500 look up (LDAPSearch wrapper) */
  2. /* by Christopher McRae, 1997        */
  3.  
  4. Parse arg Name
  5.  
  6. if Name='' then do
  7.  say 'Syntax: lookup <name>'
  8.  exit
  9. end /* if */
  10.  
  11. Item.=''
  12. Item.cn =                      'Name'
  13. Item.SN =                      "Surname"
  14. Item.personalTitle=            "Personal Title"
  15. Item.title=                    "Position"
  16. Item.postalAddress=            "Postal Address"
  17. Item.telephoneNumber=          "Telephone Number"
  18. Item.facsimileTelephoneNumber= "Fax"
  19. Item.mail=                     "E-Mail Address"
  20. Item.roomNumber=               "Room Number"
  21. Item.otherMailbox=             "Alternate Email Address"
  22. Item.labeledURI=               "More Info (URL)"
  23. Item.lastModifiedTime=         "Last Modified"
  24. Item.lastModifiedBy=           "Modified By"
  25. Item.acl=                      "Access Control List"
  26. Item.phoneBookVersion=         "Phonebook Version"
  27.  
  28. Blue='1b'x||'[47m'
  29. Default='1b'x||'[0m'
  30.  
  31.  
  32. /* Default Parameters */
  33. LDAPServer='x500.mq.edu.au'
  34. LDAPPort='389'
  35. BaseDN='o=Macquarie University, c=AU'
  36. BaseDN2='ou=School of Chemistry, o=Macquarie University, c=AU'
  37. DisplayFields='cn title postalAddress telephoneNumber facsimileTelephoneNumber mail roomNumber otherMailbox lastModifiedTime'
  38. DisplayFields2='cn'
  39.  
  40. /*
  41. newq = RXQUEUE('Create')       /* create a unique queue */
  42. oq = RXQUEUE('Set',newq)       /* establish new queue */
  43. */
  44.  
  45. /*
  46. '@ldapsearch -h 'LDAPServer' -p 'LDAPPort' -b "'BaseDN'" "cn=*'Name'*" 'DisplayFields
  47. */
  48.  
  49.  
  50. '@ldapsearch -L -u -h 'LDAPServer' -p 'LDAPPort' -b "'BaseDN2'" "cn=*'Name'*" 'DisplayFields' |rxqueue'
  51.  
  52. i=1
  53. do queued()
  54.    parse pull X500data.i
  55.    i=i+1
  56. end  /* Do */
  57.  
  58. X500Data.0=i-1
  59.  
  60. /*
  61. call RXQUEUE 'Delete',newq     /* destroy unique queue created  */
  62. call RXQUEUE 'Set',oq          /* reset to default queue (not required)*/
  63. */
  64. /*
  65. say Default
  66. say Blue||copies(' ',length(substr(X500Data.2,6)))||Default
  67. say Blue||substr(X500Data.2,6)||Default
  68. say Blue||copies(' ',length(substr(X500Data.2,6)))||Default
  69. */
  70.  
  71. say
  72. say '1b'x||'[5m'substr(X500Data.2,6)||Default
  73. say
  74. do i=3 to X500Data.0
  75.   parse var X500Data.i AttributeName ':' AttributeData
  76.   AttributeName=translate(strip(AttributeName))
  77.   if AttributeName=LastAttributeName then
  78.      AttributeName=''
  79.   else
  80.      LastAttributeName=AttributeName
  81.  
  82.   if pos('$',AttributeData)>0 then do
  83.        parse var AttributeData temp '$' AttributeData
  84.        say overlay(Item.AttributeName,' ',,25)': 'strip(temp)
  85.        do while pos('$',AttributeData)>0
  86.           parse var AttributeData temp '$' AttributeData
  87.           say copies(' ',25)': 'strip(temp)
  88.        end /* while */
  89.        say copies(' ',25)': 'strip(AttributeData)
  90.      end
  91.   else do
  92.      say overlay(Item.AttributeName,' ',,25)': 'Strip(AttributeData)
  93.   end /* if */
  94. end i
  95.  
  96.