1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import os
23 import sys
24 from flumotion.common.log import safeprintf
25
27
28 __thisdir = os.path.dirname(os.path.abspath(__file__))
29
30 __toplevel = os.path.normpath(os.path.join(__thisdir, '..', '..'))
31
32 __toplevelwrite = __toplevel
33
34
35
36
37 if os.getcwd().find('_build') > -1:
38 srcdir = os.getcwd().split('_build')[0]
39 __toplevelwrite = os.path.join(srcdir, '_build')
40
41 __cachedir = os.environ.get('FLU_CACHE_DIR',
42 os.path.join(__toplevelwrite, 'cache'))
43
44 ret = {
45 'isinstalled': False,
46 'cachedir': os.path.join(__cachedir),
47 'configdir': os.path.join(__toplevel, 'conf'),
48 'daemondir': os.path.join(__toplevelwrite),
49 'datadir': os.path.join(__toplevel, 'data'),
50 'gladedir': os.path.join(__toplevel, 'data', 'glade'),
51 'imagedir': os.path.join(__toplevel, 'data', 'image'),
52 'logdir': os.path.join(__toplevelwrite, 'log'),
53 'localedatadir': os.path.join(__toplevelwrite),
54 'pythondir': os.path.join(__toplevel),
55 'registrydir': os.path.join(__cachedir, 'registry'),
56 'rundir': os.path.join(__toplevelwrite, 'run'),
57 'bindir': os.path.join(__toplevelwrite, 'bin'),
58 'sbindir': os.path.join(__toplevelwrite, 'bin'),
59 'version': '0.5.1',
60 }
61
62 def ensure(path):
63 try:
64 os.listdir(path)
65 except:
66 os.makedirs(path)
67
68 for i in 'cache', 'log', 'registry':
69 try:
70 ensure(ret[i+'dir'])
71 except OSError, e:
72 safeprintf(sys.stderr, 'Error making %s dir %s: %s\n', i,
73 e.filename, e.strerror)
74 safeprintf(sys.stderr, 'Things are probably going to break!\n')
75
76 return ret
77