Mercurial > libpst
diff src/nick2ldif.cpp @ 16:c508ee15dfca
switch to automake/autoconf
author | carl |
---|---|
date | Sun, 19 Feb 2006 18:47:46 -0800 |
parents | |
children | e5418051878c |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/nick2ldif.cpp Sun Feb 19 18:47:46 2006 -0800 @@ -0,0 +1,71 @@ +/* + +Copyright (c) 2004 Carl Byington - 510 Software Group, released under +the GPL version 2 or any later version at your choice available at +http://www.fsf.org/licenses/gpl.txt + +*/ + +#include <stdio.h> +#include <iostream> +//#include <fstream> +#include <unistd.h> + +char *ldap_base = NULL; +char *ldap_org = NULL; +char *ldap_class = NULL; + +using namespace std; + +int main(int argc, char** argv) { + char c; + char *temp; + while ((c = getopt(argc, argv, "b:c:"))!= -1) { + switch (c) { + case 'b': + ldap_base = optarg; + temp = strchr(ldap_base, ','); + if (temp) { + *temp = '\0'; + ldap_org = strdup(ldap_base); + *temp = ','; + } + break; + case 'c': + ldap_class = optarg; + break; + default: + break; + } + } + + const int LINE_SIZE = 2000; + char line[LINE_SIZE]; + while (!cin.eof()) { + cin.getline(line, LINE_SIZE); + int n = strlen(line); + if (!n) continue; + char *f = line + 6; // skip alias keyword + char *e; + if (*f == '"') { + f++; + e = strchr(f, '"'); + } + else { + e = strchr(f, ' '); + } + if (!e) continue; + *e = '\0'; + char *m = e+1; + while (*m == ' ') m++; + if (*m != '\0') { + char cn[1000]; + snprintf(cn, sizeof(cn), "email %s", f); + printf("dn: cn=%s, %s\n", cn, ldap_base); + printf("cn: %s\n", cn); + printf("sn: %s\n", f); + printf("mail: %s\n", m); + printf("objectClass: %s\n\n", ldap_class); + } + } +}