X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=bin%2FparseConfigFile.py;h=58ff8af7ef440aa8b37719df2efbebf8a5a801b0;hb=f2d7bee74f47cd695b4c4b9b0921424837140d0c;hp=3054ed1f341eeb2154d3280befda32627afe1970;hpb=a63265d524e8436588a7bb82147a69812c153b1b;p=modules%2Fkernel.git diff --git a/bin/parseConfigFile.py b/bin/parseConfigFile.py index 3054ed1f3..58ff8af7e 100644 --- a/bin/parseConfigFile.py +++ b/bin/parseConfigFile.py @@ -1,4 +1,4 @@ -# Copyright (C) 2013-2014 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2013-2016 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -23,7 +23,7 @@ import logging import re from io import StringIO import subprocess -from salomeContextUtils import SalomeContextException +from salomeContextUtils import SalomeContextException #@UnresolvedImport logging.basicConfig() logConfigParser = logging.getLogger(__name__) @@ -133,7 +133,7 @@ class MultiOptSafeConfigParser(ConfigParser.SafeConfigParser): cursect[optname][0] += ','+optval else: cursect[optname] = [optval] - # END OF SUBSITUTION + # END OF SUBSTITUTION else: # valueless option handling cursect[optname] = optval @@ -163,7 +163,9 @@ class MultiOptSafeConfigParser(ConfigParser.SafeConfigParser): # Input: filename, and a list of reserved keywords (environment variables) # Output: a list of pairs (variable, value), and a dictionary associating a list of user-defined values to each reserved keywords # Note: Does not support duplicate keys in a same section -def parseConfigFile(filename, reserved = []): +def parseConfigFile(filename, reserved = None): + if reserved is None: + reserved = [] config = MultiOptSafeConfigParser() config.optionxform = str # case sensitive @@ -183,10 +185,12 @@ def parseConfigFile(filename, reserved = []): raise SalomeContextException(msg) # -def __processConfigFile(config, reserved = [], filename="UNKNOWN FILENAME"): +def __processConfigFile(config, reserved = None, filename="UNKNOWN FILENAME"): # :TODO: may detect duplicated variables in the same section (raise a warning) # or even duplicate sections + if reserved is None: + reserved = [] unsetVariables = [] outputVariables = [] # Get raw items for each section, and make some processing for environment variables management @@ -245,12 +249,14 @@ def _trimColons(var): # - virtually add a section to configuration file # - process shell keywords (if, then...) class EnvFileConverter(object): - def __init__(self, fp, section_name, reserved = [], outputFile=None): + def __init__(self, fp, section_name, reserved = None, outputFile=None): + if reserved is None: + reserved = [] self.fp = fp self.sechead = '[' + section_name + ']\n' self.reserved = reserved self.outputFile = outputFile - self.allParsedVariableNames=[] + self.allParsedVariableNames = [] # exclude line that begin with: self.exclude = [ 'if', 'then', 'else', 'fi', '#', 'echo', 'exit' ] self.exclude.append('$gconfTool') # QUICK FIX :TODO: provide method to extend this variable @@ -371,7 +377,9 @@ class EnvFileConverter(object): # # Convert .sh environment file to configuration file format -def convertEnvFileToConfigFile(envFilename, configFilename, reserved=[]): +def convertEnvFileToConfigFile(envFilename, configFilename, reserved=None): + if reserved is None: + reserved = [] logConfigParser.debug('convert env file %s to %s'%(envFilename, configFilename)) fileContents = open(envFilename, 'r').read()