Salome HOME
correction bug spns #16713
[tools/sat.git] / commands / config.py
index a5fd2d8e38218986da00f5fc0dcfbde660030786..3df71fec024b518f2ea0ac060baca3d86fd475df 100644 (file)
@@ -74,7 +74,7 @@ def osJoin(*args):
   res = os.path.realpath(os.path.join(*args))
   if verbose:
     if True: # ".pyconf" in res:
-      logger.info("osJoin %-80s in %s" % (res, CALN.caller_name()))
+      logger.info("osJoin %-80s in %s" % (res, CALN.caller_name(1)))
   return res
 
 class ConfigOpener:
@@ -162,8 +162,8 @@ class ConfigManager:
         
         # set platform parameters
         dist_name = src.architecture.get_distribution(codes=distrib_cfg.DISTRIBUTIONS)
-        dist_version = src.architecture.get_distrib_version(dist_name,  codes=distrib_cfg.VERSIONS)
-        dist_version_full = src.architecture.get_infosys()
+        dist_version = src.architecture.get_distrib_version(dist_name)
+        dist_version_full = src.architecture.get_version_XY()
         dist = dist_name + dist_version
         
         var['dist_name'] = dist_name
@@ -296,6 +296,15 @@ class ConfigManager:
         if cfg.LOCAL.archive_dir == "default":
             cfg.LOCAL.archive_dir = os.path.abspath( osJoin(cfg.VARS.salometoolsway, "..", "ARCHIVES"))
 
+        # if the sat tag was not set permanently by user
+        if cfg.LOCAL.tag == None:
+            # get the tag with git, and store it
+            sat_version=src.system.git_describe(cfg.VARS.salometoolsway) 
+            if sat_version == False:
+                sat_version=cfg.INTERNAL.sat_version
+            cfg.LOCAL.tag=sat_version
+                
+
         # apply overwrite from command line if needed
         for rule in self.get_command_line_overrides(options, ["LOCAL"]):
             exec('cfg.' + rule) # this cannot be factorized because of the exec
@@ -311,6 +320,10 @@ class ConfigManager:
                                 "The projects definition\n")
         
         for project_pyconf_path in cfg.PROJECTS.project_file_paths:
+            if not os.path.isabs(project_pyconf_path):
+                # for a relative path (archive case) we complete with sat path
+                project_pyconf_path = os.path.join(cfg.VARS.salometoolsway,
+                                                  project_pyconf_path)
             if not os.path.exists(project_pyconf_path):
                 msg = _("WARNING: The project file %s cannot be found. "
                         "It will be ignored\n" % project_pyconf_path)
@@ -334,6 +347,12 @@ class ConfigManager:
             projects_cfg.PROJECTS.projects[project_name]=project_cfg
             projects_cfg.PROJECTS.projects[project_name]["file_path"] = \
                                                         project_pyconf_path
+            # store the project tag if any
+            product_project_git_tag = src.system.git_describe(os.path.dirname(project_pyconf_path))
+            if product_project_git_tag:
+                projects_cfg.PROJECTS.projects[project_name]["git_tag"] = product_project_git_tag
+            else:
+                projects_cfg.PROJECTS.projects[project_name]["git_tag"] = "unknown"
                    
         merger.merge(cfg, projects_cfg)
 
@@ -354,10 +373,12 @@ class ConfigManager:
         cfg.PATHS.PRODUCTPATH.append(cfg.VARS.personal_products_dir, "")
         cfg.PATHS["ARCHIVEPATH"] = src.pyconf.Sequence(cfg.PATHS)
         cfg.PATHS.ARCHIVEPATH.append(cfg.VARS.personal_archives_dir, "")
+        cfg.PATHS["ARCHIVEFTP"] = src.pyconf.Sequence(cfg.PATHS)
         cfg.PATHS["JOBPATH"] = src.pyconf.Sequence(cfg.PATHS)
         cfg.PATHS.JOBPATH.append(cfg.VARS.personal_jobs_dir, "")
         cfg.PATHS["MACHINEPATH"] = src.pyconf.Sequence(cfg.PATHS)
         cfg.PATHS.MACHINEPATH.append(cfg.VARS.personal_machines_dir, "")
+        cfg.PATHS["LICENCEPATH"] = src.pyconf.Sequence(cfg.PATHS)
 
         # initialise the path with local directory
         cfg.PATHS["ARCHIVEPATH"].append(cfg.LOCAL.archive_dir, "")
@@ -368,8 +389,10 @@ class ConfigManager:
             for PATH in ["APPLICATIONPATH",
                          "PRODUCTPATH",
                          "ARCHIVEPATH", #comment this for default archive      #8646
+                         "ARCHIVEFTP",
                          "JOBPATH",
-                         "MACHINEPATH"]:
+                         "MACHINEPATH",
+                         "LICENCEPATH"]:
                 if PATH not in cfg.PROJECTS.projects[project]:
                     continue
                 cfg.PATHS[PATH].append(cfg.PROJECTS.projects[project][PATH], "")
@@ -444,6 +467,10 @@ class ConfigManager:
                 product_file_path = src.find_file_in_lpath(product_file_name, cfg.PATHS.PRODUCTPATH)
                 if product_file_path:
                     products_dir = os.path.dirname(product_file_path)
+                    # for a relative path (archive case) we complete with sat path
+                    if not os.path.isabs(products_dir):
+                        products_dir = os.path.join(cfg.VARS.salometoolsway,
+                                                    products_dir)
                     try:
                         prod_cfg = src.pyconf.Config(open(product_file_path),
                                                      PWD=("", products_dir))
@@ -718,6 +745,7 @@ def show_product_info(config, name, logger):
                                     check_path(pinfo.environ.env_script), 
                                     2)
 
+    # display run-time environment
     zz = src.environment.SalomeEnviron(config,
                                        src.fileEnviron.ScreenEnviron(logger), 
                                        False)