Skip to content

Commit f32077f

Browse files
fix(func/files/manifest): 对获取清单目录函数添加更多检查和调试输出 (#288)
* refactor(func/files/manifest): 简化获取清单目录中的包类型定义 * fix(func/files/manifest): 对获取清单目录函数添加更多检查和调试输出
1 parent ce27a10 commit f32077f

3 files changed

Lines changed: 19 additions & 19 deletions

File tree

src/function/files/manifest.py

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,21 +50,35 @@ def 获取清单目录(包标识符: str, 包版本: str | None = None, winget_p
5050
:rtype: str | None
5151
"""
5252

53+
if '.' not in 包标识符:
54+
if 读取配置("debug"):
55+
print(f"{消息头.调试} 包标识符格式不正确(应带有 \'.\'),获取到 {包标识符}")
56+
return None
57+
5358
if not winget_pkgs目录:
5459
配置值 = 读取配置("paths.winget-pkgs")
5560
if isinstance(配置值, str):
5661
winget_pkgs目录 = 配置值
5762
else:
5863
return None
5964

60-
可能的包类型 = ["manifests", "fonts"]
61-
62-
for 包类型 in 可能的包类型:
65+
for 包类型 in ("manifests", "fonts"):
6366
清单目录 = os.path.join(winget_pkgs目录, 包类型, 包标识符[0].lower(), *包标识符.split('.'))
6467
if 包版本:
6568
清单目录 = os.path.join(清单目录, 包版本)
66-
if os.path.exists(清单目录):
67-
return 清单目录
69+
70+
if not os.path.exists(清单目录):
71+
if 读取配置("debug"):
72+
print(f"{消息头.调试} 未能在 {包类型} 目录下找到清单目录")
73+
continue
74+
75+
if 包版本 and any(os.path.isdir(os.path.join(清单目录, item)) for item in os.listdir(清单目录)):
76+
if 读取配置("debug"):
77+
print(f"{消息头.调试} 目录 {os.path.relpath(清单目录, winget_pkgs目录)} 下存在其他文件夹,不是版本文件夹")
78+
print(f"{消息头.提示} 这可能是因为你 {Fore.YELLOW}错误的将包标识符的一部分当作包版本{Fore.RESET} 导致的,也可能是因为 {包类型} 目录下也有标识符部分相同的包")
79+
continue
80+
81+
return 清单目录
6882

6983
return None
7084

src/tools/cat.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -72,13 +72,6 @@ def main(args: list[str]) -> int:
7272
print(f"{消息头.错误} 获取清单目录失败")
7373
return 1
7474

75-
if any(os.path.isdir(os.path.join(清单目录, item)) for item in os.listdir(清单目录)):
76-
# 如果清单目录下存在其他文件夹
77-
print(f"{消息头.错误} 清单目录下存在其他文件夹")
78-
print(f"{消息头.提示} 这可能是因为你 {Fore.YELLOW}错误的将包标识符的一部分当作包版本{Fore.RESET} 导致的。")
79-
print(f"{消息头.提示} 例如包 DuckStudio.GitHubView.Nightly 被错误的认为是包 DuckStudio.GitHubView 的一个版本号为 Nightly 的版本。")
80-
return 1
81-
8275
清单文件: list[str] | str
8376
if (清单类型 == "all"):
8477
# 设置清单文件为清单目录下的所有 yaml 文件

src/tools/remove.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -102,13 +102,6 @@ def main(args: list[str]) -> int:
102102
print(f"{Fore.RED}包版本清单目录不存在: {os.path.join(清单目录, 包版本)}")
103103
return 1
104104

105-
if any(os.path.isdir(os.path.join(os.path.join(清单目录, 包版本), item)) for item in os.listdir(os.path.join(清单目录, 包版本))):
106-
# 如果包版本清单目录下存在其他文件夹
107-
print(f"{消息头.错误} 包版本清单目录下存在其他文件夹")
108-
print(f"{消息头.提示} 这可能是因为你 {Fore.YELLOW}错误的将包标识符的一部分当作包版本{Fore.RESET} 导致的。")
109-
print(f"{消息头.提示} 例如包 DuckStudio.GitHubView.Nightly 被错误的认为是包 DuckStudio.GitHubView 的一个版本号为 Nightly 的版本。")
110-
return 1
111-
112105
# 入口
113106
os.chdir(winget_pkgs目录)
114107
if not 跳过检查:

0 commit comments

Comments
 (0)