Code Files

ldif2api.awk

Generated on Tue Dec 05 17:39:05 Eastern Standard Time 2006 from ldif2api.awk


# Program   : LDIF2API.AWK
# Purpose   : Convert LDIF file created by LDAPSEARCH.EXE into an API file for use by GWAPI
# Date      : 7 July 2005
# Author    : Bob Jonkman



function unfold(   currentline)   {     currentline = $0 ;
                                        getline ;
                                        while(substr($0,1,1) ~ "[[:space:]]")
                                        {
                                            currentline = currentline ltrim($0) ;
                                            getline ;
                                        }
                                        return(currentline) ;

}


BEGIN   {   # Output the API file headers
	    	print("WPC-API= 1.2; ");
		    print("Header-Char= T50; ");
		    print("Msg-Type= ADMIN; ");
		    print(""); 
	}



(1)        {    
                while ($0 != "")
                {
                    line = unfold() ;  # Ensure we've got the whole multi-line record
                    split(line, field, ":") ;
                   # print("##### DEBUG ##### field[1]= " field[1]);
                   # print("##### DEBUG ##### field[2]= " field[2]);
                    record[field[1]] = ltrim(field[2]) ;
                }
               # print("##### DEBUG ##### " FNR " EOR");
                print("DS-USER=") ;
                print("  Operation= Modify ;" ) ;
                print("  Domain= "     record["dn"] ";") ;
                print("  Post-Office= ;" ) ;
                print("  Object= "     record["uid"] ";" ) ;
                print("  Visibility= System;" ) ;
                print("  Last-Name= "  record["sn"] ";" ) ;
                print("  First-Name= " record["givenname"] ";" ) ;
                print("  Title= "      record["title"] ";" ) ;
                print("  Department= ;"  ) ;                     # Department
                print("  User-Def-2= ;"  ) ;                     # Division
                print("  User-Def-7= " record["ou"] ";" ) ;     # Section
                print("  User-Def-8= ;"  ) ;                     # Unit
                print("  User-Def-1= " record["postaladdress"] ";" ) ;
                print("  Phone= "      record["telephonenumber"] ";" ) ;
                print("  Fax= "        record["facsimiletelephonenumber"] ";" ) ;
                print("  User-Def-3= " record["mobile"] ";" ) ;
                print("  User-Def-4= " record["pager"] ";" ) ;
                print("  Gw-Alias=" ) ;
                print("    Type= gwia;" ) ;
                print("    External-Name= " record["mail"] ";" ) ;
                print("  ;" ) ;
                print("") ;     
}

END 	{	print("-END- ")				# Output the API file footer
	}


# EOF: LDIF2API.AWK

   

1 files processed.