3 from __future__ import print_function
6 from ConfigParser import RawConfigParser
7 except ImportError: # py3
8 from configparser import RawConfigParser
10 __all__ = ['get_config']
13 def _find_config_dirs_posix():
15 if 'XDG_CONFIG_HOME' in os.environ:
16 config_dirs.append(os.environ['XDG_CONFIG_HOME'])
17 if 'XDG_CONFIG_DIRS' in os.environ:
18 config_dirs.extend(os.environ['XDG_CONFIG_DIRS'].split(':'))
19 home_config = os.path.expanduser('~/.config')
20 if home_config not in config_dirs:
21 config_dirs.append(home_config)
25 def find_config_dirs():
26 if os.name == 'posix':
27 return _find_config_dirs_posix()
28 raise OSError("Unknow OS")
31 def find_config_file(config_dirs=None):
32 if config_dirs is None:
33 config_dirs = find_config_dirs()
35 ml_conf_file = os.path.join(d, 'm_librarian.conf')
36 if os.path.exists(ml_conf_file):
39 raise IOError("Cannot find m_librarian.conf in %s" % config_dirs)
45 def get_config(config_path=None):
47 if _ml_config is None:
48 if config_path is None:
49 config_path = find_config_file()
50 _ml_config = RawConfigParser()
51 _ml_config.read(config_path)
56 config_dirs = find_config_dirs()
57 print("Config dirs:", config_dirs)
58 print("Config file:", find_config_file(config_dirs))
60 if __name__ == '__main__':