4 from ConfigParser import RawConfigParser
6 __all__ = ['get_config']
9 def _find_config_dirs_posix():
11 if 'XDG_CONFIG_HOME' in os.environ:
12 config_dirs.append(os.environ['XDG_CONFIG_HOME'])
13 if 'XDG_CONFIG_DIRS' in os.environ:
14 config_dirs.extend(os.environ['XDG_CONFIG_DIRS'].split(':'))
15 home_config = os.path.expanduser('~/.config')
16 if home_config not in config_dirs:
17 config_dirs.append(home_config)
21 def find_config_dirs():
22 if os.name == 'posix':
23 return _find_config_dirs_posix()
24 raise OSError("Unknow OS")
27 def find_config_file(config_dirs=None):
28 if config_dirs is None:
29 config_dirs = find_config_dirs()
31 ml_conf_file = os.path.join(d, 'm_librarian.conf')
32 if os.path.exists(ml_conf_file):
35 raise IOError("Cannot find m_librarian.conf in %s" % config_dirs)
41 def get_config(config_filename=None):
43 if _ml_config is None:
44 if config_filename is None:
45 config_filename = find_config_file()
46 _ml_config = RawConfigParser()
47 _ml_config.read(config_filename)
52 config_dirs = find_config_dirs()
53 print "Config dirs:", config_dirs
54 print "Config file:", find_config_file(config_dirs)
56 if __name__ == '__main__':