diff options
Diffstat (limited to 'services/console/lib/purk/conf.py')
-rw-r--r-- | services/console/lib/purk/conf.py | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/services/console/lib/purk/conf.py b/services/console/lib/purk/conf.py new file mode 100644 index 0000000..9cae512 --- /dev/null +++ b/services/console/lib/purk/conf.py @@ -0,0 +1,86 @@ +import os +urkpath = os.path.dirname(__file__) + +def path(filename=""): + if filename: + return os.path.join(urkpath, filename) + else: + return urkpath + +if os.access(path('profile'),os.F_OK) or os.path.expanduser("~") == "~": + userpath = path('profile') + if not os.access(userpath,os.F_OK): + os.mkdir(userpath) + if not os.access(os.path.join(userpath,'scripts'),os.F_OK): + os.mkdir(os.path.join(userpath,'scripts')) +else: + userpath = os.path.join(os.path.expanduser("~"), ".urk") + if not os.access(userpath,os.F_OK): + os.mkdir(userpath, 0700) + if not os.access(os.path.join(userpath,'scripts'),os.F_OK): + os.mkdir(os.path.join(userpath,'scripts'), 0700) + +CONF_FILE = os.path.join(userpath,'urk.conf') + + +def pprint(obj, depth=-2): + depth += 2 + + string = [] + + if isinstance(obj, dict): + if obj: + string.append('{\n') + + for key in obj: + string.append('%s%s%s' % (' '*depth, repr(key), ': ')) + string += pprint(obj[key], depth) + + string.append('%s%s' % (' '*depth, '},\n')) + + else: + string.append('{},\n') + + elif isinstance(obj, list): + if obj: + string.append('[\n') + + for item in obj: + string.append('%s' % (' '*depth)) + string += pprint(item, depth) + + string.append('%s%s' % (' '*depth, '],\n')) + + else: + string.append('[],\n') + + else: + string.append('%s,\n' % (repr(obj),)) + + if depth: + return string + else: + return ''.join(string)[:-2] + +def save(*args): + new_file = not os.access(CONF_FILE,os.F_OK) + fd = file(CONF_FILE, "wb") + try: + if new_file: + os.chmod(CONF_FILE,0600) + fd.write(pprint(conf)) + finally: + fd.close() + +#events.register('Exit', 'post', save) + +try: + conf = eval(file(CONF_FILE, "U").read().strip()) +except IOError, e: + if e.args[0] == 2: + conf = {} + else: + raise + +if __name__ == '__main__': + print pprint(conf) |