diff --git a/common/common.py b/common/common.py index 26457910ccbf71f19d7086486399325f4204f519..5adb6c8c53e53b562bf0a500a9e7226e312dc3bc 100644 --- a/common/common.py +++ b/common/common.py @@ -17,7 +17,7 @@ """ function for all """ - +import os import pexpect @@ -28,6 +28,29 @@ def str_to_bool(s): return s.lower() in ("yes", "true", "t", "1") +def git_repo_src(repo_url, gitee_user_name, gitee_user_pwd): + """ + get repo source + repo_url: url of repository + gitee_user_name: + gitee_user_pwd: + """ + repos_dir = os.getcwd() + tmp = repo_url.split("//") + repo_path = os.path.join(repos_dir, tmp[1].split("/")[-1].replace(".git", "")) + if os.path.exists(repo_path) and os.path.isdir(repo_path): + cmd = "cd %s && git pull" % repo_path + else: + cmd = "rm -rf %s && git clone --depth 1 %s//%s:%s@%s" % \ + (repo_path, tmp[0], gitee_user_name, gitee_user_pwd, tmp[1]) + if os.system(cmd) != 0: + return None + if os.path.exists(repo_path): + return repo_path + else: + return None + + class Pexpect(object): """ expect by python @@ -92,6 +115,8 @@ class Pexpect(object): if __name__ == "__main__": + res = git_repo_src("https://gitee.com/src-openeuler/zip", "xxxxx", "xxxxx") + print(res) test = Pexpect("root", "127.0.0.1", "123456", port=2224) res = test.ssh_cmd("pwd") print(res) diff --git a/common/parser_config.py b/common/parser_config.py index c47a67a7b311050adb215631b9df892d318aea19..0cca6672c673fc448647d864a94d4b8b6e06a9ea 100644 --- a/common/parser_config.py +++ b/common/parser_config.py @@ -52,6 +52,7 @@ class ParserConfigIni(object): """ self.update_enabled_flag = {} self.branch_proj = {} + self.repos = {} config_path = "config/config.ini" self.config = ConfParser() #self.config = configparser.ConfigParser() @@ -61,6 +62,7 @@ class ParserConfigIni(object): self._init_ignored_repo() self._init_package_info_file() self._init_branch_proj() + self._init_gitee_repository() def _init_branch_list(self): """ @@ -132,6 +134,22 @@ class ParserConfigIni(object): """ return self.branch_proj + def _init_gitee_repository(self): + """ + init repos url + """ + repos_list = self.config.options("gitee_repository") + print(repos_list) + for repo in repos_list: + self.repos[repo] = self.config.get("gitee_repository", repo) + + def get_repos_dict(self): + """ + get repos url + return: repos, type: dict + """ + return self.repos + if __name__ == "__main__": p = ParserConfigIni() @@ -140,3 +158,4 @@ if __name__ == "__main__": print(p.get_ignored_repo()) print(p.get_package_info_file()) print(p.get_branch_proj()) + print(p.get_repos_dict()) diff --git a/config/config.ini b/config/config.ini index c69bbed6eca9d429ad0fed51a5630b3a6bb87822..ca6243c8f237fe948037c81f2fa371534156964d 100644 --- a/config/config.ini +++ b/config/config.ini @@ -13,4 +13,7 @@ openEuler-20.09 = openEuler:20.09 openEuler-20.03-LTS = openEuler:20.03:LTS openEuler-20.03-LTS-SP1 = openEuler:20.03:LTS:SP1 openEuler-20.03-LTS-Next = openEuler:20.03:LTS:Next +[gitee_repository] +community = https://gitee.com/openeuler/community +obs_meta = https://gitee.com/src-openeuler/obs_meta diff --git a/openeuler_obs.py b/openeuler_obs.py index bdb5bd651ed12b5066f3f654dabc2404158b63f5..a293a521a7a3a9d449dfb9eb8666af7c0c516330 100644 --- a/openeuler_obs.py +++ b/openeuler_obs.py @@ -73,6 +73,5 @@ kw = { "check_flag": args.check, "pkglist": args.pkglist } -log.info(kw) run = Runner(**kw) run.run()