diff nick2ldif.cpp @ 2:8dd68d722fa8

add ldif converters
author carl
date Sun, 11 Jul 2004 13:31:02 -0700
parents
children a818f3c2e589
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nick2ldif.cpp	Sun Jul 11 13:31:02 2004 -0700
@@ -0,0 +1,72 @@
+/*
+
+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;
+        }
+    }
+
+    char *delim = " \t";
+    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);
+        }
+    }
+}