# 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"):
# 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
: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")
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,
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)
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'
# 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"
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.
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