diff --git a/tools/modify_src_openeuler_yaml.py b/tools/modify_src_openeuler_yaml.py index 81a07b9fad2d1bda273d89de14c562d2c6736741..63420f285f49fa6bcdbdae9829d52e0e81d81397 100644 --- a/tools/modify_src_openeuler_yaml.py +++ b/tools/modify_src_openeuler_yaml.py @@ -53,32 +53,56 @@ def write_yaml(dict_msg, file_path): with open(file_path, "w", encoding='utf-8') as f: yaml.dump(dict_msg, f, default_flow_style=False, sort_keys=False) -def modify_file_msg(pckg_msg, openeuler_msg): - for pckg in pckg_msg['packages']['natural']: +def modify_file_msg(pckg_msg, yaml_path_dict): + modify_list = [] + all_list = [] + baseos_pkg_list = pckg_msg['packages']['everything']['baseos'] + other_pkg_list = pckg_msg['packages']['everything']['other'] + epol_pkg_list = pckg_msg['packages']['epol'] + all_list.extend(baseos_pkg_list) + all_list.extend(other_pkg_list) + all_list.extend(epol_pkg_list) + + for pckg in all_list: flag = False + pkg_name = pckg['name'] add_msg = {'name': pckg['branch_to'], 'type': 'protected', 'create_from': pckg['branch_from']} - for openeuler in openeuler_msg['repositories']: - if openeuler['name'] == pckg['name']: - for br in openeuler['branches']: - if br['name'] == pckg['branch_to']: - flag = True - break - if not flag: - openeuler['branches'].append(add_msg) - break - return openeuler_msg + openeuler_path = yaml_path_dict.get(pkg_name, "") + openeuler_msg = read_yaml(openeuler_path) + + for br in openeuler_msg['branches']: + if br['name'] == pckg['branch_to']: + flag = True + break + if not flag: + openeuler_msg['branches'].append(add_msg) + write_yaml(openeuler_msg, openeuler_path) + print("Modify yaml: ", openeuler_path) + modify_list.append(pkg_name) + + write_yaml(modify_list, './modify_pkg.txt') # modify package name list + print('modify yaml number: ', len(modify_list)) + + +def get_yaml_path(yaml_root_dir): + package_dict = {} + for root, dirs, files in os.walk(yaml_root_dir): + for each_file in files: + file_path = os.path.join(root, each_file) + if each_file.endswith('.yaml') and ('src-openeuler' in file_path): + package_name = each_file[:-5] + package_dict[package_name] = file_path + + return package_dict def modify_yaml_file(): git_clone("community") git_clone("release-management") - src_openeuler_yaml = os.path.join(os.getcwd(), "community/repository/src-openeuler.yaml") - openeuler_msg = read_yaml(src_openeuler_yaml) + src_openeuler_yaml_root = os.path.join(os.getcwd(), "community/sig") + yaml_dict = get_yaml_path(src_openeuler_yaml_root) pckg_msg = read_yaml(args.pckg_mgmt) - new_openeuler_msg = modify_file_msg(pckg_msg, openeuler_msg) - new_src_openeuler_yaml = os.path.join(os.getcwd(), "src-openeuler.yaml") - write_yaml(new_openeuler_msg, new_src_openeuler_yaml) - print("The modified src-openeuler.yaml is in ", new_src_openeuler_yaml) + modify_file_msg(pckg_msg, yaml_dict) modify_yaml_file()