forked from jvasile/Plinth
-
Notifications
You must be signed in to change notification settings - Fork 1
/
cfg.py
70 lines (60 loc) · 1.9 KB
/
cfg.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
from menu import Menu
import os
import ConfigParser
from ConfigParser import SafeConfigParser
product_name = None
box_name = None
root = None
file_root = None
python_root = None
data_dir = None
actions_dir = None
store_file = None
user_db = None
status_log_file = None
access_log_file = None
pidfile = None
host = None
port = None
debug = False
no_daemon = False
server_dir = '/'
main_menu = Menu()
def read():
"""Read configuration"""
directory = os.path.dirname(os.path.realpath(__file__))
parser = SafeConfigParser(
defaults={
'root': directory,
})
parser.read(os.path.join(directory, 'plinth.config'))
config_items = {('Name', 'product_name'),
('Name', 'box_name'),
('Path', 'root'),
('Path', 'file_root'),
('Path', 'python_root'),
('Path', 'data_dir'),
('Path', 'store_file'),
('Path', 'user_db'),
('Path', 'actions_dir'),
('Path', 'status_log_file'),
('Path', 'access_log_file'),
('Path', 'pidfile'),
('Network', 'host'),
('Network', 'port')}
for section, name in config_items:
try:
value = parser.get(section, name)
globals()[name] = value
except (ConfigParser.NoSectionError, ConfigParser.NoOptionError):
print ('Configuration does not contain the {}.{} option.'
.format(section, name))
raise
global port # pylint: disable-msg=W0603
port = int(port)
global store_file # pylint: disable-msg=W0603
if store_file.endswith(".sqlite3"):
store_file = os.path.splitext(store_file)[0]
global user_db # pylint: disable-msg=W0603
if user_db.endswith(".sqlite3"):
user_db = os.path.splitext(user_db)[0]