From b256e1668367234806c9a376998e1765ddd117ea Mon Sep 17 00:00:00 2001 From: crouzet Date: Fri, 28 Jul 2017 16:30:41 +0200 Subject: [PATCH] simplification laucher (suite) et maj commandes package et run --- commands/launcher.py | 6 ++---- commands/package.py | 33 +++++++++++++++++++++------------ commands/run.py | 13 ++++--------- src/__init__.py | 15 +++++++++++++++ src/test_module.py | 19 ++++--------------- 5 files changed, 46 insertions(+), 40 deletions(-) diff --git a/commands/launcher.py b/commands/launcher.py index 61d78d9..213845a 100644 --- a/commands/launcher.py +++ b/commands/launcher.py @@ -72,9 +72,9 @@ def generate_launch_file(config, # get KERNEL bin installation path # (in order for the launcher to get python salomeContext API) kernel_cfg = src.product.get_product_config(config, "KERNEL") - kernel_root_dir = kernel_cfg.install_dir if not src.product.check_installation(kernel_cfg): raise src.SatException(_("KERNEL is not installed")) + kernel_root_dir = kernel_cfg.install_dir # set kernel bin dir (considering fhs property) if src.get_property_in_product_cfg(kernel_cfg, "fhs"): @@ -238,10 +238,8 @@ def run(args, runner, logger): # Determine the launcher name (from option, profile section or by default "salome") if options.name: launcher_name = options.name - elif 'profile' in runner.cfg.APPLICATION and 'launcher_name=' in runner.cfg.APPLICATION.profile: - launcher_name = runner.cfg.APPLICATION.profile.launcher_name else: - launcher_name = 'salome' + launcher_name = src.get_launcher_name(runner.cfg) # set the launcher path launcher_path = runner.cfg.APPLICATION.workdir diff --git a/commands/package.py b/commands/package.py index ab4051e..ed58691 100644 --- a/commands/package.py +++ b/commands/package.py @@ -180,16 +180,25 @@ def produce_relative_launcher(config, :rtype: str ''' - # Get the launcher template - profile_install_dir = os.path.join(binaries_dir_name, - config.APPLICATION.profile.product) + # get KERNEL installation path + kernel_root_dir = os.path.join(binaries_dir_name, "KERNEL") + + # set kernel bin dir (considering fhs property) + kernel_cfg = src.product.get_product_config(config, "KERNEL") + if src.get_property_in_product_cfg(kernel_cfg, "fhs"): + bin_kernel_install_dir = os.path.join(kernel_root_dir,"bin") + else: + bin_kernel_install_dir = os.path.join(kernel_root_dir,"bin","salome") + + # Get the launcher template and do substitutions withProfile = src.fileEnviron.withProfile + withProfile = withProfile.replace( - "ABSOLUTE_APPLI_PATH'] = 'PROFILE_INSTALL_DIR'", - "ABSOLUTE_APPLI_PATH'] = out_dir_Path + '" + config.VARS.sep + profile_install_dir + "'") + "ABSOLUTE_APPLI_PATH'] = 'KERNEL_INSTALL_DIR'", + "ABSOLUTE_APPLI_PATH'] = out_dir_Path + '" + config.VARS.sep + kernel_root_dir + "'") withProfile = withProfile.replace( - "os.path.join( 'PROFILE_INSTALL_DIR'", - "os.path.join( out_dir_Path, '" + profile_install_dir + "'") + " 'BIN_KERNEL_INSTALL_DIR'", + " out_dir_Path + '" + config.VARS.sep + bin_kernel_install_dir + "'") before, after = withProfile.split( "# here your local standalone environment\n") @@ -535,9 +544,10 @@ def binary_package(config, logger, options, tmp_working_dir): d_products[prod_name + " (sources)"] = (source_dir, path_in_archive) # create the relative launcher and add it to the files to add - if ("profile" in config.APPLICATION and - "product" in config.APPLICATION.profile): - launcher_name = config.APPLICATION.profile.launcher_name + VersionSalome = src.get_salome_version(config) + # Case where SALOME has the launcher that uses the SalomeContext API + if VersionSalome >= 730: + launcher_name = src.get_launcher_name(config) launcher_package = produce_relative_launcher(config, logger, tmp_working_dir, @@ -619,7 +629,7 @@ def source_package(sat, config, logger, options, tmp_working_dir): t = os.getcwd() except: # In the jobs, os.getcwd() can fail - t = config.USER.workdir + t = config.LOCAL.workdir os.chdir(tmp_working_dir) if os.path.lexists(tmp_satlink_path): os.remove(tmp_satlink_path) @@ -1054,7 +1064,6 @@ The procedure to do it is: f.write("# Application: " + d['application']) if 'profile' in config.APPLICATION: d['launcher'] = config.APPLICATION.profile.launcher_name - d['launcher'] = config.APPLICATION.profile.launcher_name else: d['env_file'] = 'env_launch.sh' diff --git a/commands/run.py b/commands/run.py index fe3fd9b..fa08cb9 100644 --- a/commands/run.py +++ b/commands/run.py @@ -38,22 +38,17 @@ def run(args, runner, logger): # check for product src.check_config_has_application(runner.cfg) - # check for profile - src.check_config_has_profile(runner.cfg) - # Determine launcher path - launcher_name = runner.cfg.APPLICATION.profile.launcher_name + launcher_name = src.get_launcher_name(runner.cfg) launcher_dir = runner.cfg.APPLICATION.workdir # Check the launcher existence if launcher_name not in os.listdir(launcher_dir): - profile_name = runner.cfg.APPLICATION.profile.module - profile_install_dir = src.product.get_product_config(runner.cfg, - profile_name).install_dir - launcher_dir = os.path.join(profile_install_dir, 'bin', 'salome') + message = _("The launcher %s was not found in directory %s!\nDid you run the" + " command 'sat launcher' ?\n") % (launcher_name, launcher_dir) + raise src.SatException(message) launcher_path = os.path.join(launcher_dir, launcher_name) - launcher_path = os.path.abspath(launcher_path) if not os.path.exists(launcher_path): message = _("The launcher at path %s is missing.\nDid you run the" diff --git a/src/__init__.py b/src/__init__.py index fd75079..e8a8928 100644 --- a/src/__init__.py +++ b/src/__init__.py @@ -136,6 +136,21 @@ def get_base_path(config): return base_path +def get_launcher_name(config): + '''Returns the name of salome launcher. + + :param config Config: The global Config instance. + :return: The name of salome launcher. + :rtype: str + ''' + check_config_has_application(config) + if 'profile' in config.APPLICATION and 'launcher_name=' in config.APPLICATION.profile: + launcher_name = config.APPLICATION.profile.launcher_name + else: + launcher_name = 'salome' + + return launcher_name + def get_log_path(config): '''Returns the path of the logs. diff --git a/src/test_module.py b/src/test_module.py index 9ad20dd..7dd8378 100644 --- a/src/test_module.py +++ b/src/test_module.py @@ -531,22 +531,11 @@ class Test: return binSalome, binPython, killSalome # Case where SALOME has the launcher that uses the SalomeContext API - if VersionSalome >= 730: - if 'profile' not in self.config.APPLICATION: - # Before revision of application concept - launcher_name = self.config.APPLI.launch_alias_name - binSalome = os.path.join(self.config.APPLICATION.workdir, - appdir, - launcher_name) - else: - # After revision of application concept - launcher_name = self.config.APPLICATION.profile.launcher_name - binSalome = os.path.join(self.config.APPLICATION.workdir, - launcher_name) + else: + launcher_name = src.get_launcher_name(config) + binSalome = os.path.join(self.config.APPLICATION.workdir, + launcher_name) - if src.architecture.is_windows(): - binSalome += '.bat' - binPython = binSalome + ' shell' killSalome = binSalome + ' killall' return binSalome, binPython, killSalome -- 2.39.2