gtk: don't use gtk if there's no display
[urk.git] / conf.py
blobc490ae3f44ce8ea941ee3e40e1cd1988b7ed295e
1 import events
3 import urk
4 import os
6 CONF_FILE = os.path.join(urk.userpath,'urk.conf')
8 def pprint(obj, depth=-2):
9 depth += 2
11 string = []
13 if isinstance(obj, dict):
14 if obj:
15 string.append('{\n')
17 for key in obj:
18 string.append('%s%s%s' % (' '*depth, repr(key), ': '))
19 string += pprint(obj[key], depth)
21 string.append('%s%s' % (' '*depth, '},\n'))
23 else:
24 string.append('{},\n')
26 elif isinstance(obj, list):
27 if obj:
28 string.append('[\n')
30 for item in obj:
31 string.append('%s' % (' '*depth))
32 string += pprint(item, depth)
34 string.append('%s%s' % (' '*depth, '],\n'))
36 else:
37 string.append('[],\n')
39 else:
40 string.append('%s,\n' % (repr(obj),))
42 if depth:
43 return string
44 else:
45 return ''.join(string)[:-2]
47 def save(*args):
48 new_file = not os.access(CONF_FILE,os.F_OK)
49 fd = file(CONF_FILE, "wb")
50 try:
51 if new_file:
52 os.chmod(CONF_FILE,0600)
53 fd.write(pprint(conf))
54 finally:
55 fd.close()
57 events.register('Exit', 'post', save)
59 try:
60 conf = eval(file(CONF_FILE, "U").read().strip())
61 except IOError, e:
62 if e.args[0] == 2:
63 conf = {}
64 else:
65 raise
67 if __name__ == '__main__':
68 print pprint(conf)