Ai
170 Star 435 Fork 1.6K

openEuler/community

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
split_repos.py 2.74 KB
一键复制 编辑 原始数据 按行查看 历史
#!/usr/bin/python3
"""
This is a sanity checking tool for openEuler community database
"""
import yaml
import sys
import argparse
import os
def load_yaml(d, f):
"""
Helper for load YAML database
"""
p = os.path.expanduser(os.path.join(d, f))
try:
y = yaml.load(open(p, encoding="utf-8"), Loader=yaml.Loader)
except FileNotFoundError:
print("Cannot Load {path}".format(path=p))
print("Could be wrong path")
sys.exit(1)
except yaml.scanner.ScannerError as e:
print("%s: Invalid YAML file"%(p))
print("Detailed Error Information:")
print(e)
sys.exit(1)
return y
if __name__ == "__main__":
par = argparse.ArgumentParser()
par.add_argument("community", type=str, help="Local path of community repository")
args = par.parse_args()
openeuler_repo_yaml = load_yaml(args.community, "repository/openeuler.yaml")
openeuler_repos = openeuler_repo_yaml["repositories"]
srcopeneuler_repo_yaml = load_yaml(args.community, "repository/src-openeuler.yaml")
srcopeneuler_repos = srcopeneuler_repo_yaml["repositories"]
sigs_yaml = load_yaml(args.community, "sig/sigs.yaml")
sigs = sigs_yaml["sigs"]
os.makedirs(os.path.join(args.community, "repository/openeuler"), exist_ok=True)
for openeuler_repo in openeuler_repos:
dn = os.path.join(args.community, "repository/openeuler", openeuler_repo["name"][0].lower())
fn = os.path.join(dn, openeuler_repo["name"]+".yaml")
if not os.path.exists(dn):
os.mkdir(dn)
with open(fn, "w") as repo_yaml:
yaml.dump(openeuler_repo, repo_yaml, sort_keys=False)
os.makedirs(os.path.join(args.community, "repository/src-openeuler"), exist_ok=True)
for srcopeneuler_repo in srcopeneuler_repos:
dn = os.path.join(args.community, "repository/src-openeuler", srcopeneuler_repo["name"][0].lower())
fn = os.path.join(dn, srcopeneuler_repo["name"]+".yaml")
if not os.path.exists(dn):
os.mkdir(dn)
with open(fn, "w") as repo_yaml:
yaml.dump(srcopeneuler_repo, repo_yaml, sort_keys=False)
for sig in sigs:
sig_name = sig["name"]
sig_dn = os.path.join(args.community, "sig", sig_name)
repos = sig["repositories"]
for repo in repos:
org, code = repo.split("/")
new_path = os.path.join(args.community, "sig", sig_name, org, code[0].lower())
os.makedirs(new_path, exist_ok=True)
old_path = os.path.join(args.community, "repository", org, code[0].lower(), code+".yaml")
if not os.path.exists(old_path):
print(repo + " not exist")
else:
os.rename(old_path, os.path.join(new_path, code+".yaml"))
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/openeuler/community.git
git@gitee.com:openeuler/community.git
openeuler
community
community
master

搜索帮助