1#!/usr/bin/env python 2 3import sys 4from gtkdictbrowser import GtkDictBrowser 5import gtk 6from samba import tdb 7import string 8 9# Open handle on tdb 10 11if len(sys.argv) != 2: 12 print "Usage: gdbtool <tdbfile>" 13 sys.exit(1) 14 15try: 16 t = tdb.open(sys.argv[1]) 17except tdb.error, t: 18 print "gtdbtool: error opening %s: %s" % (sys.argv[1], t) 19 sys.exit(1) 20 21# Create interface 22 23db = GtkDictBrowser(t) 24 25def display_key_x00(key): 26 """Remove \x00 from all keys as they mucks up GTK.""" 27 return string.replace(key, "\x00", "") 28 29db.register_get_key_text_fn(display_key_x00) 30 31db.build_ui('gtdbtool') 32 33# Override Python's handling of ctrl-c so we can break out of the 34# gui from the command line. 35 36import signal 37signal.signal(signal.SIGINT, signal.SIG_DFL) 38 39gtk.mainloop() 40