X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=bin%2FlaunchConfigureParser.py;h=57c492797c978a1bb50f293b790b5fdb32688f70;hb=e72332cd1cce863d7efbdecfb2055b8d9ee0630f;hp=39c3d22cbe50dee89ae6576aac1de58750373cec;hpb=d4d2eda0dbe527ecc80addfa3ab272435d505950;p=modules%2Fkernel.git diff --git a/bin/launchConfigureParser.py b/bin/launchConfigureParser.py index 39c3d22cb..57c492797 100755 --- a/bin/launchConfigureParser.py +++ b/bin/launchConfigureParser.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE # # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -60,16 +60,13 @@ pinter_nam = "pinter" batch_nam = "batch" test_nam = "test" play_nam = "play" +lang_nam = "language" gdb_session_nam = "gdb_session" ddd_session_nam = "ddd_session" valgrind_session_nam = "valgrind_session" shutdown_servers_nam = "shutdown_servers" foreground_nam = "foreground" wake_up_session_nam = "wake_up_session" -siman_nam = "siman" -siman_study_nam = "siman_study" -siman_scenario_nam = "siman_scenario" -siman_user_nam = "siman_user" # values in XML configuration file giving specific module parameters ( section) # which are stored in opts with key _ (eg SMESH_plugins) @@ -313,6 +310,15 @@ class xml_parser: return strloc pass + def strValue( self, str ): + strloc = str + try: + if isinstance(strloc, types.UnicodeType): strloc = strloc.encode().strip() + else: strloc = strloc.strip() + except: + pass + return strloc + def startElement(self, name, attrs): self.space.append(name) self.current = None @@ -325,7 +331,7 @@ class xml_parser: # either "launch" or module name -- set section_name if self.space == [doc_tag, sec_tag] and nam_att in attrs.getNames(): section_name = attrs.getValue( nam_att ) - if section_name == lanch_nam: + if section_name in [lanch_nam, lang_nam]: self.section = section_name # launch section elif self.opts.has_key( modules_nam ) and \ section_name in self.opts[ modules_nam ]: @@ -347,14 +353,15 @@ class xml_parser: key = nam else: # key for section key = self.section + "_" + nam + key = self.strValue( key ) if nam in boolKeys: self.opts[key] = self.boolValue( val ) # assign boolean value: 0 or 1 elif nam in intKeys: self.opts[key] = self.intValue( val ) # assign integer value elif nam in listKeys: - self.opts[key] = filter( lambda a: a.strip(), re.split( "[:;,]", val ) ) # assign list value: [] + self.opts[key] = [ self.strValue( a ) for a in re.split( "[:;,]", val ) ] # assign list value: [] else: - self.opts[key] = val + self.opts[key] = self.strValue( val ) # string value pass pass @@ -490,7 +497,7 @@ def store_boolean (option, opt, value, parser, *args): for attribute in args: setattr(parser.values, attribute, value) -def CreateOptionParser (theAdditionalOptions=None): +def CreateOptionParser (theAdditionalOptions=None, exeName=None): if theAdditionalOptions is None: theAdditionalOptions = [] # GUI/Terminal. Default: GUI @@ -787,39 +794,13 @@ def CreateOptionParser (theAdditionalOptions=None): dest="use_port", help=help_str) - # SIMAN launch mode - help_str = "Special mode for interacting with SIMAN." - o_siman = optparse.Option("--siman", - action="store_true", - dest="siman", - help=help_str) - - # SIMAN study - help_str = "SIMAN study identifier." - o_siman_study = optparse.Option("--siman-study", - metavar="", - type="string", - action="store", - dest="siman_study", - help=help_str) - - # SIMAN scenario - help_str = "SIMAN scenario identifier." - o_siman_scenario = optparse.Option("--siman-scenario", - metavar="", - type="string", - action="store", - dest="siman_scenario", - help=help_str) - - # SIMAN user - help_str = "SIMAN user identifier." - o_siman_user = optparse.Option("--siman-user", - metavar="", - type="string", - action="store", - dest="siman_user", - help=help_str) + help_str = "Force application language. By default, a language specified in " + help_str += "the user's preferences is used." + o_lang = optparse.Option("-a", + "--language", + action="store", + dest="language", + help=help_str) # All options opt_list = [o_t,o_g, # GUI/Terminal @@ -850,10 +831,7 @@ def CreateOptionParser (theAdditionalOptions=None): o_wake_up, o_slm, # Server launch mode o_port, # Use port - o_siman, # Siman launch mode - o_siman_study, # Siman study - o_siman_scenario,# Siman scenario - o_siman_user, # Siman user + o_lang, # Language ] #std_options = ["gui", "desktop", "log_file", "resources", @@ -863,9 +841,12 @@ def CreateOptionParser (theAdditionalOptions=None): opt_list += theAdditionalOptions - a_usage = """%prog [options] [STUDY_FILE] [PYTHON_FILE [args] [PYTHON_FILE [args]...]] + if not exeName: + exeName = "%prog" + + a_usage = """%s [options] [STUDY_FILE] [PYTHON_FILE [args] [PYTHON_FILE [args]...]] Python file arguments, if any, must be comma-separated (without blank characters) and prefixed by "args:" (without quotes), e.g. myscript.py args:arg1,arg2=val,... -""" +"""%exeName version_str = "Salome %s" % version() pars = optparse.OptionParser(usage=a_usage, version=version_str, option_list=opt_list) @@ -881,7 +862,7 @@ Python file arguments, if any, must be comma-separated (without blank characters args = {} #def get_env(): #args = [] -def get_env(theAdditionalOptions=None, appname=salomeappname, cfgname=salomecfgname): +def get_env(theAdditionalOptions=None, appname=salomeappname, cfgname=salomecfgname, exeName=None): ### # Collect launch configuration files: # - The environment variable "Config" (SalomeAppConfig) which can @@ -921,7 +902,7 @@ def get_env(theAdditionalOptions=None, appname=salomeappname, cfgname=salomecfgn ############################ # parse command line options - pars = CreateOptionParser(theAdditionalOptions) + pars = CreateOptionParser(theAdditionalOptions, exeName=exeName) (cmd_opts, cmd_args) = pars.parse_args(sys.argv[1:]) ############################ @@ -1169,16 +1150,6 @@ def get_env(theAdditionalOptions=None, appname=salomeappname, cfgname=salomecfgn if cmd_opts.wake_up_session is not None: args[wake_up_session_nam] = cmd_opts.wake_up_session - # siman options - if cmd_opts.siman is not None: - args[siman_nam] = cmd_opts.siman - if cmd_opts.siman_study is not None: - args[siman_study_nam] = cmd_opts.siman_study - if cmd_opts.siman_scenario is not None: - args[siman_scenario_nam] = cmd_opts.siman_scenario - if cmd_opts.siman_user is not None: - args[siman_user_nam] = cmd_opts.siman_user - #################################################### # Add values to args for add_opt in theAdditionalOptions: @@ -1236,6 +1207,13 @@ def get_env(theAdditionalOptions=None, appname=salomeappname, cfgname=salomecfgn sys.exit(1) args[useport_nam] = cmd_opts.use_port + if cmd_opts.language is not None: + langs = args["language_languages"] if "language_languages" in args else [] + if cmd_opts.language not in langs: + print "Error: unsupported language: %s" % cmd_opts.language + sys.exit(1) + args[lang_nam] = cmd_opts.language + # return arguments os.environ[config_var] = os.pathsep.join(dirs) #print "Args: ", args