aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'slave/autotua/config.py')
-rw-r--r--slave/autotua/config.py41
1 files changed, 23 insertions, 18 deletions
diff --git a/slave/autotua/config.py b/slave/autotua/config.py
index 7ab4267..704a310 100644
--- a/slave/autotua/config.py
+++ b/slave/autotua/config.py
@@ -1,5 +1,5 @@
# vim: set sw=4 sts=4 et :
-# Copyright: 2008 Gentoo Foundation
+# Copyright: 2008-2009 Gentoo Foundation
# Author(s): Nirbheek Chauhan <nirbheek.chauhan@gmail.com>
# License: GPL-3
#
@@ -7,10 +7,12 @@
#
"""
-Default configuration, overriden by /etc/autotua/slave.cfg
+Default configuration, overriden by const.CONFIG_PATH
"""
-import os, ConfigParser, const
+from __future__ import with_statement
+import os, ConfigParser
+from . import const
VERBOSE = False
FULL_CLEAN = False
@@ -29,21 +31,24 @@ PORTAGE_DIR = '/usr/portage'
DISTFILES_DIR = '/usr/portage/distfiles'
# Read settings from slave.cfg which override the above
-if os.path.exists('%s/slave.cfg' % const.CONFIG_PATH):
- options = locals().copy()
- cfg = ConfigParser.ConfigParser()
- cfg.readfp(open('%s/slave.cfg' % const.CONFIG_PATH))
- for option, value in options.iteritems():
- if not isinstance(value, (str, int, bool)):
- continue
- if cfg.has_option('global', option.lower()):
- if isinstance(value, str):
- if not option.startswith('__'):
- exec('%s = %s' % (option, cfg.get('global', option.lower())))
- elif isinstance(value, bool):
- exec('%s = %s' % (option, cfg.getboolean('global', option.lower())))
- elif isinstance(value, int):
- exec('%s = %s' % (option, cfg.getint('global', option.lower())))
+try:
+ with open('%s/slave.cfg' % const.CONFIG_PATH) as slave_cfg:
+ options = locals().copy()
+ cfg = ConfigParser.ConfigParser()
+ cfg.readfp(slave_cfg)
+ for option, value in options.iteritems():
+ if not isinstance(value, (str, int, bool)):
+ continue
+ if cfg.has_option('global', option.lower()):
+ if isinstance(value, str):
+ if not option.startswith('__'):
+ exec('%s = %s' % (option, cfg.get('global', option.lower())))
+ elif isinstance(value, bool):
+ exec('%s = %s' % (option, cfg.getboolean('global', option.lower())))
+ elif isinstance(value, int):
+ exec('%s = %s' % (option, cfg.getint('global', option.lower())))
+except IOError, OSError:
+ print "!!! Unable to read %s/slave.cfg, ignoring..." % const.CONFIG_PATH
if not AUTOTUA_MASTER:
print "!!! WARNING: You did not edit the autotua_master variable in slave.cfg (or AUTOTUA_MASTER in config.py)"