3 from __future__ import print_function
5 from ConfigParser import RawConfigParser
7 __all__ = ['get_config']
10 def _find_config_dirs_posix():
12 if 'XDG_CONFIG_HOME' in os.environ:
13 config_dirs.append(os.environ['XDG_CONFIG_HOME'])
14 if 'XDG_CONFIG_DIRS' in os.environ:
15 config_dirs.extend(os.environ['XDG_CONFIG_DIRS'].split(':'))
16 home_config = os.path.expanduser('~/.config')
17 if home_config not in config_dirs:
18 config_dirs.append(home_config)
22 def find_config_dirs():
23 if os.name == 'posix':
24 return _find_config_dirs_posix()
25 raise OSError("Unknow OS")
28 def find_config_file(config_dirs=None):
29 if config_dirs is None:
30 config_dirs = find_config_dirs()
32 ml_conf_file = os.path.join(d, 'm_librarian.conf')
33 if os.path.exists(ml_conf_file):
36 raise IOError("Cannot find m_librarian.conf in %s" % config_dirs)
42 def get_config(config_path=None):
44 if _ml_config is None:
45 if config_path is None:
46 config_path = find_config_file()
47 _ml_config = RawConfigParser()
48 _ml_config.read(config_path)
53 config_dirs = find_config_dirs()
54 print("Config dirs:", config_dirs)
55 print("Config file:", find_config_file(config_dirs))
57 if __name__ == '__main__':