Build system overhaul.
[misc] / cdb-map.in
diff --git a/cdb-map.in b/cdb-map.in
new file mode 100644 (file)
index 0000000..d478092
--- /dev/null
@@ -0,0 +1,32 @@
+#! @PYTHON@
+
+from cdb import cdbmake
+from sre import sub as r_sub
+from sys import argv, stdin, stderr, exit
+
+ego = r_sub(r'^.*[/\\]', '', argv[0])
+def die(msg, prefix = True):
+  if prefix: msg ='%s: %s' % (ego, msg)
+  print >>stderr, msg
+  exit(1)
+
+def files(args):
+  if len(args) == 0:
+    yield stdin
+  else:
+    for a in args:
+      if a == '-':
+       yield stdin
+      else:
+       yield open(a, 'r')
+
+if len(argv) < 2:
+  die('usage: %s CDB [INPUT ...]' % ego, False)
+
+cdb = cdbmake(argv[1], argv[1] + '.new')
+for f in files(argv[2:]):
+  for line in f:
+    if len(line) and line[-1] == '\n': line = line[:-1]
+    k, v = line.split(':', 1)
+    cdb.add(k, v)
+cdb.finish()