]> git.phdru.name Git - m_librarian.git/blob - m_librarian/wx/session_config.py
Feat(wx): Find session config
[m_librarian.git] / m_librarian / wx / session_config.py
1 #! /usr/bin/env python
2
3 from __future__ import print_function
4 import os
5
6 from ..config import RawConfigParser, ConfigWrapper, find_config_file
7
8
9 __all__ = ['get_session_config']
10
11
12 def _find_config_dirs_posix():
13     config_dirs = []
14     if 'XDG_CACHE_HOME' in os.environ:
15         config_dirs.append(os.environ['XDG_CACHE_HOME'])
16     home_cache = os.path.expanduser('~/.cache')
17     if home_cache not in config_dirs:
18         config_dirs.append(home_cache)
19     return config_dirs
20
21
22 def _find_config_dirs():
23     if os.name == 'posix':
24         return _find_config_dirs_posix()
25     return None
26
27
28 _ml_session_config = None
29
30
31 def get_session_config(config_path=None):
32     global _ml_session_config
33     if _ml_session_config is None:
34         _ml_session_config = RawConfigParser()
35         if config_path is None:
36             config_dirs = _find_config_dirs()
37             config_path = \
38                 find_config_file(config_dirs, 'm_librarian_session.conf')
39         if config_path is not None:
40             _ml_session_config.read(config_path)
41         _ml_session_config = ConfigWrapper(_ml_session_config)
42     return _ml_session_config
43
44
45 def _test():
46     config_dirs = _find_config_dirs()
47     print("Config dirs:", config_dirs)
48     print("Config file:",
49           find_config_file(config_dirs, 'm_librarian_session.conf'))
50
51
52 if __name__ == '__main__':
53     _test()