From 19483f4ee4660cb6efc4b77a6625806866cf5332 Mon Sep 17 00:00:00 2001 From: Sean Robinson Date: Sat, 3 May 2014 03:38:45 -0700 Subject: [PATCH] Move configuration file reading to wifiradar module This is not the end of the configuration file handling move, but does finish the simplification of wifi-radar phase. Signed-off-by: Sean Robinson --- wifi-radar | 43 ++----------------------------------------- wifiradar/__init__.py | 18 +++++++++++++++--- 2 files changed, 17 insertions(+), 44 deletions(-) diff --git a/wifi-radar b/wifi-radar index 9cb8101..a1b0847 100755 --- a/wifi-radar +++ b/wifi-radar @@ -55,7 +55,6 @@ import os import sys import wifiradar -import wifiradar.config from wifiradar.misc import _, WIFI_RADAR_VERSION import wifiradar.gui.g2 as ui import wifiradar.gui.g2.transients as transients @@ -64,45 +63,7 @@ import wifiradar.gui.g2.transients as transients # Where the conf file should live could be different for your distro. Please change # at install time with "make install sysconfdir=/etc/wifi-radar" or similar. -BEF- # -CONF_FILE = '/etc/wifi-radar/wifi-radar.conf' - -#os.environ['LC_MESSAGES'] = 'C' - -# initialize config, with default values -config_file = wifiradar.config.ConfigFileManager(CONF_FILE) -config = config_file.read() - -if not os.path.isfile(CONF_FILE): - config.set_bool_opt('GENERAL', 'new_file', True) -else: - if not os.access(CONF_FILE, os.R_OK): - print("Can't open {FILE}".format(FILE=CONF_FILE)) - print('Are you root?') - sys.exit() - try: - config = config_file.read() - except (NameError, SyntaxError) as e: - error_message = _('A configuration file from a pre-2.0 version ' - 'of WiFi Radar was found at {FILE}.\n\nWiFi Radar v2.0.x does ' - 'not read configuration files from previous versions. ') - if isinstance(e, NameError): - error_message += _('Because {FILE} may contain information ' - 'that you might wish to use when configuring WiFi Radar ' - '{VERSION}, rename this file and run the program again.') - elif isinstance(e, SyntaxError): - error_message += _('The old configuration file is probably ' - 'empty and can be removed. Rename {FILE} if you want ' - 'to be very careful. After removing or renaming ' - '{FILE}, run this program again.') - error_message = error_message.format(FILE=CONF_FILE, - VERSION=WIFI_RADAR_VERSION) - error_dlg = transients.ErrorDialog(None, error_message) - del error_dlg - logger.critical(error_message) - sys.exit() - else: - if not __debug__: - logger.setLevel(self.config.get_opt_as_int('GENERAL', 'loglevel')) +CONF_FILE = '/etc/wifi-radar/wifi-radar.conf' #################################################################################################### @@ -117,4 +78,4 @@ if __name__ == '__main__': 'or visit http://wifi-radar.tuxfamily.org/').format( VERSION=WIFI_RADAR_VERSION)) else: - wifiradar.Main(config) + wifiradar.Main(CONF_FILE) diff --git a/wifiradar/__init__.py b/wifiradar/__init__.py index 024d620..7b680e4 100644 --- a/wifiradar/__init__.py +++ b/wifiradar/__init__.py @@ -54,17 +54,29 @@ logger = logging.getLogger(__name__) class Main(object): """ The primary component of WiFi Radar. """ - def __init__(self, config): + def __init__(self, conf_file): """ Create WiFi Radar app using :data:`config` for configuration. """ - self.config = config - dispatcher = Dispatcher() scanner_pipe = dispatcher.subscribe(['ALL']) ui_pipe = dispatcher.subscribe(['ALL']) self.msg_pipe = dispatcher.subscribe(['ALL']) try: + self.config, self.config_file_man = self.make_config(conf_file) + except ConfigFileError as e: + self.msg_pipe.send(Message('ERROR', e)) + logger.critical(e) + except IOError as e: + self.msg_pipe.send(Message('ERROR', e)) + logger.critical(e) + self.shutdown([ui_proc, scanner_thread], dispatcher) + else: + if not __debug__: + logger.setLevel(self.config.get_opt_as_int('GENERAL', + 'loglevel')) + + try: fileLogHandler = logging.handlers.RotatingFileHandler( self.config.get_opt('GENERAL', 'logfile'), maxBytes=64*1024, backupCount=5) -- 2.11.4.GIT