3 __all__ = ['get_config']
6 from ConfigParser import SafeConfigParser
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)
38 def get_config(config_filename=None):
39 if config_filename is None:
40 config_filename = find_config_file()
41 ml_conf = SafeConfigParser()
42 ml_conf.read(config_filename)
47 config_dirs = find_config_dirs()
48 print "Config dirs:", config_dirs
49 print "Config file:", find_config_file(config_dirs)
51 if __name__ == '__main__':