Salome HOME
spns #40779: improved implementation - servers are now defined in project configurati...
[tools/sat.git] / commands / config.py
index eec74a345ce3178e3a87cd5fabcd12ef0545efc4..4cf61168dbce928417b9895f159d1c0a2475a908 100644 (file)
@@ -200,13 +200,7 @@ class ConfigManager:
         # particular win case 
         if src.architecture.is_windows() : 
             var['tmp_root'] =  os.path.expanduser('~') + os.sep + 'tmp'
-        repositories_cfg = src.pyconf.Config( osJoin(var['srcDir'], 'internal_config', 'git_repo_servers.pyconf'))
-        var['repositories_servers'] = []
-        var['opensource_repositories_servers'] =[]
-        for repo_server in repositories_cfg.REPOSITORIES_SERVERS:
-          var['repositories_servers']+=[repo_server]
-          if repositories_cfg.REPOSITORIES_SERVERS[repo_server] == 'opensource':
-            var['opensource_repositories_servers']+=[repo_server]
+
         return var
 
     def get_command_line_overrides(self, options, sections):
@@ -421,11 +415,33 @@ class ConfigManager:
         for rule in self.get_command_line_overrides(options, ["PATHS"]):
             exec('cfg.' + rule) # this cannot be factorized because of the exec
 
+        # add git servers if any
+        cfg.addMapping("git_info", src.pyconf.Mapping(cfg), "The repositories\n")
+        cfg.VARS['git_servers'] = []
+        cfg.VARS['opensource_git_servers'] =[]
+
+        for project in cfg.PROJECTS.projects:
+          if 'git_info' not in  cfg.PROJECTS.projects[project]:
+            logger.warning("Project: {} does not have any git_info section! Please define one!")
+            continue
+          if 'git_server' in cfg.PROJECTS.projects[project]['git_info']:
+            git_servers=cfg.PROJECTS.projects[project]['git_info']['git_server']
+            for git_server in git_servers:
+              cfg.VARS['git_servers']+=[git_server]
+              if git_servers[git_server]['opensource_only'] == 'yes' :
+                cfg.VARS['opensource_git_servers']+=[git_server]
+          if 'default_git_server_dev' in cfg.PROJECTS.projects[project]['git_info'].keys():
+            cfg.VARS['git_servers']+=['tuleap']
+            cfg.VARS['default_git_server_dev'] = cfg.PROJECTS.projects[project]['git_info']['default_git_server_dev']
+          if 'default_git_server' in cfg.PROJECTS.projects[project]['git_info'].keys():
+            cfg.VARS['git_servers']+=['gitpub']
+            cfg.VARS['opensource_git_servers']+=['gitpub']
+            cfg.VARS['default_git_server'] = cfg.PROJECTS.projects[project]['git_info']['default_git_server']
+
         # AT END append APPLI_TEST directory in APPLICATIONPATH, for unittest
         appli_test_dir =  osJoin(satdir, "test", "APPLI_TEST")
         if appli_test_dir not in cfg.PATHS.APPLICATIONPATH:
           cfg.PATHS.APPLICATIONPATH.append(appli_test_dir, "unittest APPLI_TEST path")
-
         # =====================================================================
         # Load APPLICATION config file
         if application is not None: