summaryrefslogtreecommitdiff
path: root/pkg/configs.py
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/configs.py')
-rw-r--r--pkg/configs.py43
1 files changed, 30 insertions, 13 deletions
diff --git a/pkg/configs.py b/pkg/configs.py
index ffb90ed..5b499db 100644
--- a/pkg/configs.py
+++ b/pkg/configs.py
@@ -63,6 +63,26 @@ def configure(conf):
conf.msg('Buildset filter', bf, color='GREEN')
+def get_config_parser():
+ try:
+ import configparser
+ config = configparser.ConfigParser(strict=False, interpolation=None)
+ except:
+ # python2
+ import ConfigParser as configparser
+ config = configparser.ConfigParser(raw=True)
+ return config
+
+
+def get_config_error():
+ try:
+ import configparser
+ except:
+ # python2
+ import ConfigParser as configparser
+ return configparser.Error
+
+
def config_path(config):
return os.path.join(path, config + '.bset')
@@ -80,16 +100,6 @@ def add_wscript_fun(ctx, fun_name, fun_func):
def configs_ini_load(bld, inis, configs):
- def get_parser():
- try:
- import configparser
- config = configparser.ConfigParser(strict=False)
- except:
- # python2
- import ConfigParser as configparser
- config = configparser.ConfigParser()
- return config
-
def parse_types(bld, value):
vs = value.lower().strip().split(' ')
if len(vs) == 1:
@@ -126,8 +136,11 @@ def configs_ini_load(bld, inis, configs):
return None
for ini in inis:
- config = get_parser()
- config.read(ini)
+ config = get_config_parser()
+ try:
+ config.read(ini)
+ except pkg.configs.get_config_error() as ce:
+ bld.fatal('configs ini parse error: ' + str(ce))
ini_dir = os.path.dirname(os.path.abspath(ini))
for d in config.defaults():
i = (d, config.defaults()[d])
@@ -141,7 +154,11 @@ def configs_ini_load(bld, inis, configs):
for section in config.sections():
for c in configs:
if section == os.path.basename(c['buildset']):
- for i in config.items(section):
+ try:
+ items = config.items(section)
+ except pkg.configs.get_config_error() as ce:
+ bld.fatal('configs ini parse error: ' + str(ce))
+ for i in items:
val = parse_types(bld, i[1])
if val is None:
bld.fatal('invalid configs item in ' + ini + ': ' +