#! @PYTHON@ ### -*-python-*- from cdb import cdbmake from re import compile as r_compile, 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) rx_comment = r_compile(r'^\s*(\#|$)') rx_shave = r_compile(r'\s*(.*\S|)\s*$') 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] if rx_comment.match(line): continue line = rx_shave.sub(r'\1', line) cdb.add(line, '') cdb.finish()