summaryrefslogtreecommitdiffstats
path: root/ldap/servers/slapd/mkDBErrStrs.pl
diff options
context:
space:
mode:
authorcvsadm <cvsadm>2005-01-21 00:44:34 +0000
committercvsadm <cvsadm>2005-01-21 00:44:34 +0000
commitb2093e3016027d6b5cf06b3f91f30769bfc099e2 (patch)
treecf58939393a9032182c4fbc4441164a9456e82f8 /ldap/servers/slapd/mkDBErrStrs.pl
downloadds-b2093e3016027d6b5cf06b3f91f30769bfc099e2.tar.gz
ds-b2093e3016027d6b5cf06b3f91f30769bfc099e2.tar.xz
ds-b2093e3016027d6b5cf06b3f91f30769bfc099e2.zip
Moving NSCP Directory Server from DirectoryBranch to TRUNK, initial drop. (foxworth)ldapserver7x
Diffstat (limited to 'ldap/servers/slapd/mkDBErrStrs.pl')
-rwxr-xr-xldap/servers/slapd/mkDBErrStrs.pl83
1 files changed, 83 insertions, 0 deletions
diff --git a/ldap/servers/slapd/mkDBErrStrs.pl b/ldap/servers/slapd/mkDBErrStrs.pl
new file mode 100755
index 00000000..c93cf261
--- /dev/null
+++ b/ldap/servers/slapd/mkDBErrStrs.pl
@@ -0,0 +1,83 @@
+#!/usr/local/bin/perl
+#
+# BEGIN COPYRIGHT BLOCK
+# Copyright 2001 Sun Microsystems, Inc.
+# Portions copyright 1999, 2001-2003 Netscape Communications Corporation.
+# All rights reserved.
+# END COPYRIGHT BLOCK
+#
+#
+# Perl script to generate dberrstrs.h, which is used in errormap.c.
+#
+
+sub numerically { $a <=> $b; }
+
+$dbdir = "";
+$isNT = 0;
+$i = 0;
+$outdir = "";
+
+while ($i <= $#ARGV) {
+ if ("$ARGV[$i]" eq "-nt" || "$ARGV[$i]" eq "-NT") { # NT
+ $isNT = 1;
+ } elsif ("$ARGV[$i]" eq "-o" || "$ARGV[$i]" eq "-O") { # output dir
+ $i++;
+ $outdir = $ARGV[$i];
+ } elsif ("$ARGV[$i]" eq "-i" || "$ARGV[$i]" eq "-I") { # input db dir
+ $i++;
+ $dbdir = $ARGV[$i];
+ }
+ $i++;
+}
+
+if ($dbdir eq "") {
+ print(STDERR "Usage: $0 [-nt] <db_dir_path>\n");
+ exit(1);
+}
+
+if ($isNT == 1) {
+ $dirsep = "\\";
+} else {
+ $dirsep = "/";
+}
+
+$dbh = sprintf("%s%sdb.h", $dbdir, $dirsep);
+
+open(FOO, $dbh) || die "Cannot open $dbh\n";
+@lines = <FOO>;
+close(FOO);
+
+$i = 0;
+$j = 0;
+while ($i < $#lines) {
+ chop($lines[$i]);
+ if ($lines[$i] =~ /^#define[ ][_A-Z]*[ ]*\(-[0-9]*/) {
+ ($h, $t) = split(/\(/, $lines[$i], 2);
+ ($num[$j], $tt) = split(/\)/, $t, 2);
+ ($h, $ttt) = split(/\/\* /, $tt, 2);
+ ($errstr, $tttt) = split(/ \*\//, $ttt, 2);
+ if ($errstr ne "") {
+ $errstr =~ s/\"/\\\"/g; # Escape quotes
+ $numStrPair{$num[$j]} = $errstr;
+ }
+ $j++;
+ }
+ $i++;
+}
+
+sort numerically num;
+
+if ($outdir eq "") {
+ $myheader = "dberrstrs.h";
+} else {
+ $myheader = sprintf("%s%sdberrstrs.h", $outdir, $dirsep);
+}
+
+open(FOO, "> $myheader") || die "Cannot open $myheader\n";
+print( FOO "/* DO NOT EDIT: This is an automatically generated file by $0 */\n" );
+$i = 0;
+while ($i < $j) {
+ print( FOO "{$num[$i],\t\"$numStrPair{$num[$i]}\"},\n" );
+ $i++;
+}
+close(FOO);