Skip to content

Commit c4345a9

Browse files
CYFS3Rbb666
authored andcommitted
feat:添加名字重复检查
1 parent 19b4751 commit c4345a9

1 file changed

Lines changed: 44 additions & 0 deletions

File tree

ci.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,47 @@ def file_path_check(package_info, pathname):
8989
return False
9090

9191

92+
def check_duplicate_package_names(work_root):
93+
"""Check whether any packages declare the same package name."""
94+
95+
package_names = {}
96+
duplicate_names = {}
97+
98+
for path, dir_list, file_list in os.walk(work_root):
99+
dir_list.sort()
100+
file_list.sort()
101+
102+
if 'package.json' not in file_list:
103+
continue
104+
105+
json_pathname = os.path.join(path, 'package.json')
106+
json_info = get_json_info(json_pathname)
107+
if not json_info:
108+
return False
109+
110+
package_name = json_info.get('name', '')
111+
if not package_name:
112+
print("The name of package %s is lost." % json_pathname)
113+
return False
114+
115+
if package_name in package_names:
116+
duplicate_names.setdefault(package_name, [package_names[package_name]])
117+
duplicate_names[package_name].append(json_pathname)
118+
else:
119+
package_names[package_name] = json_pathname
120+
121+
if duplicate_names:
122+
print("===========================================>")
123+
print("Error: duplicated package name found.")
124+
for package_name in sorted(duplicate_names):
125+
print("package name: %s" % package_name)
126+
for pathname in duplicate_names[package_name]:
127+
print(" %s" % pathname)
128+
return False
129+
130+
return True
131+
132+
92133
def check_json_file(work_root):
93134
"""Check the json file."""
94135

@@ -214,6 +255,9 @@ def main():
214255
try:
215256
work_root = os.getcwd()
216257
print(work_root)
258+
if not check_duplicate_package_names(work_root):
259+
sys.exit(1)
260+
217261
if not check_json_file(work_root):
218262
sys.exit(1)
219263

0 commit comments

Comments
 (0)