From c0306cf6081b1445d77854872307cdecde3e54af Mon Sep 17 00:00:00 2001 From: CYFS <2805686936@qq.com> Date: Fri, 15 May 2026 10:04:34 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E6=B7=BB=E5=8A=A0=E5=90=8D?= =?UTF-8?q?=E5=AD=97=E9=87=8D=E5=A4=8D=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ci.py | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/ci.py b/ci.py index 1e1526f38f..74a9040af8 100644 --- a/ci.py +++ b/ci.py @@ -89,6 +89,47 @@ def file_path_check(package_info, pathname): return False +def check_duplicate_package_names(work_root): + """Check whether any packages declare the same package name.""" + + package_names = {} + duplicate_names = {} + + for path, dir_list, file_list in os.walk(work_root): + dir_list.sort() + file_list.sort() + + if 'package.json' not in file_list: + continue + + json_pathname = os.path.join(path, 'package.json') + json_info = get_json_info(json_pathname) + if not json_info: + return False + + package_name = json_info.get('name', '') + if not package_name: + print("The name of package %s is lost." % json_pathname) + return False + + if package_name in package_names: + duplicate_names.setdefault(package_name, [package_names[package_name]]) + duplicate_names[package_name].append(json_pathname) + else: + package_names[package_name] = json_pathname + + if duplicate_names: + print("===========================================>") + print("Error: duplicated package name found.") + for package_name in sorted(duplicate_names): + print("package name: %s" % package_name) + for pathname in duplicate_names[package_name]: + print(" %s" % pathname) + return False + + return True + + def check_json_file(work_root): """Check the json file.""" @@ -214,6 +255,9 @@ def main(): try: work_root = os.getcwd() print(work_root) + if not check_duplicate_package_names(work_root): + sys.exit(1) + if not check_json_file(work_root): sys.exit(1)