diff --git a/module_build_service/builder/MockModuleBuilder.py b/module_build_service/builder/MockModuleBuilder.py index e2f07267..b660c1a8 100644 --- a/module_build_service/builder/MockModuleBuilder.py +++ b/module_build_service/builder/MockModuleBuilder.py @@ -446,13 +446,18 @@ class SCMBuilder(BaseBuilder): super(SCMBuilder, self).__init__(config, resultsdir) with open(config, "a") as f: branch = source.split("?#")[1] + dist_git_get = self._get_clone_command(source).format(artifact_name) f.writelines([ "config_opts['scm'] = True\n", "config_opts['scm_opts']['method'] = 'distgit'\n", "config_opts['scm_opts']['branch'] = '{}'\n".format(branch), "config_opts['scm_opts']['package'] = '{}'\n".format(artifact_name), - "config_opts['scm_opts']['distgit_get'] = 'fedpkg clone {} --anonymous'\n".format(artifact_name), + "config_opts['scm_opts']['distgit_get'] = '{}'\n".format(dist_git_get), "config_opts['scm_opts']['distgit_src_get'] = 'fedpkg sources'\n", ]) - + def _get_clone_command(self, source): + for host, cmd in conf.distgits.items(): + if source.startswith(host): + return cmd + raise KeyError("No defined command for {}".format(source)) diff --git a/module_build_service/config.py b/module_build_service/config.py index 7707597a..37a7dfb2 100644 --- a/module_build_service/config.py +++ b/module_build_service/config.py @@ -286,6 +286,12 @@ class Config(object): 'type': str, 'default': '', 'desc': 'Trusted certificate for ssl connection.'}, + 'distgits': { + 'type': dict, + 'default': { + 'git://pkgs.fedoraproject.org': 'fedpkg clone --anonymous {}', + }, + 'desc': 'Mapping between dist-git and command to '}, 'mock_config': { 'type': str, 'default': 'fedora-25-x86_64',