55
55
class configmanager(object):
57
def __get_prefix(self):
58
if self.__prefix is None:
57
def __find_path(self, *paths):
58
"""Locate paths under the system's prefix or home installation
59
61
f = os.path.normpath(__file__)
63
prefix_possible = ['/usr', '/usr/local', sys.prefix]
65
home_dir = get_home_dir()
66
for p in prefix_possible:
69
if f.startswith(home_dir):
70
possible.append(os.path.join(home_dir,'.local'))
60
71
sitepackages_prefix = os.path.join('lib', 'python%s' % sys.version[:3], 'site-packages', release.name, os.path.basename(f))
61
72
home_prefix = os.path.join('lib', 'python', release.name, os.path.basename(f))
63
74
for p in [sitepackages_prefix, home_prefix]:
65
self.__prefix = f[:-len(p)]
67
if self.__prefix is None:
68
self.__prefix = sys.prefix
76
possible.append(f[:-len(p)])
78
final_paths = (p,)+paths
79
if os.path.isdir(os.path.join(*final_paths)):
80
return os.path.join(*final_paths)
82
return os.path.join(*((sys.prefix,) + paths))
72
84
def __init__(self,fname=None):
73
85
self.__prefix = None
79
91
'login.db': 'terp',
80
92
'client.toolbar': 'both',
81
93
'client.theme': 'none',
82
'path.share': os.path.join(self.__get_prefix(), 'share', release.name),
83
'path.pixmaps': os.path.join(self.__get_prefix(), 'share', 'pixmaps', release.name),
94
'path.share': self.__find_path('share', release.name),
95
'path.pixmaps': self.__find_path('share', 'pixmaps', release.name),
84
96
'tip.autostart': False,
86
98
'form.autosave': False,