11# Sundry
22sundry 是一个 WinGet 本地清单管理工具,让您更方便地移除清单、修改清单,还可以辅助更新清单。
33
4- ## 代码说明
5- ### 为什么有些简介中的功能在发行版中没有
6- 简介中的功能我都在本地写好了,这个工具本来是我自己本地用的,传之前需要一段时间修改。
7-
84## 使用说明
95当您获取本工具后,请先使用这个命令初始化配置文件:
106
@@ -30,14 +26,228 @@ sundry config show
3026sundry config [条目] [值]
3127```
3228
33- 更多可用命令可以使用此命令查看:
29+ 更多可用命令请见下方示例。
30+
31+ ## 可用命令
32+
33+ > Sundry [ 1.2.7] ( https://github.com/DuckDuckStudio/Sundry/releases/tag/1.2.7 )
34+
35+ <details >
36+ <summary ><code >sundry help</code ></summary >
37+
38+ ![ Sundry help 命令展示图。该命令用于输出 Sundry 帮助内容。] ( docs/photos/README/Demo/Commands/help.png )
39+
40+ - 别名: 任何非命令字符
41+ - 作用: 显示 Sundry 帮助
42+
43+ </details >
44+
45+
46+ <details >
47+ <summary ><code >sundry ver</code ></summary >
48+
49+ ![ Sundry ver 命令展示图。该命令用于输出 Sundry 的版本和安装位置。] ( docs/photos/README/Demo/Commands/ver.png )
50+
51+ - 别名: ` ver ` , ` 版本 ` , ` version ` , ` Version ` , ` --version ` , ` --ver ` , ` -v `
52+ - 作用: 显示 Sundry 版本和安装位置
53+
54+ </details >
55+
56+
57+ <details >
58+ <summary ><code >sundry remove</code ></summary >
59+
60+ ![ Sundry remove 命令展示图。该命令用于从上游仓库(microsoft/winget-pkgs)中移除一个指定的软件包的指定版本,并带上理由(如果有)后自动创建拉取请求。] ( docs/photos/README/Demo/Commands/remove.png )
61+
62+ > 截图来自拉取请求: https://github.com/microsoft/winget-pkgs/pull/265074
63+
64+ - 别名: ` 移除 ` , ` remove `
65+ - 作用: ** 移除一个指定的软件包的指定版本** ,并在移除前自动检查该版本是否确实存在问题。可以指定理由或跳过自动检查。** 默认理由为“安装程序URL在GitHub Action上返回了404”。**
66+ - 用法: ` sundry remove <软件包标识符> <软件包版本> [是否跳过自动检查] [理由] `
67+ - 示例:
68+ - 最少参数: ` sundry remove DuckStudio.FufuTools 1.3.10 `
69+ - 跳过自动检查: ` sundry remove DuckStudio.FufuTools 1.3.10 True `
70+ - 指定理由: ` sundry remove DuckStudio.FufuTools 1.3.10 "该版本存在一个已知问题" `
71+ - 指定理由的同时跳过自动检查: ` sundry remove DuckStudio.FufuTools 1.3.10 True "该版本存在一个已知问题" `
72+
73+ </details >
74+
75+
76+ <details >
77+ <summary ><code >sundry modify</code ></summary >
78+
79+ ![ Sundry modify 命令展示图。该命令用于帮助用户打开需要修改的那个软件包的那个版本,并在修改完毕后自动向上游仓库(microsoft/winget-pkgs)提交拉取请求。] ( docs/photos/README/Demo/Commands/modify.png )
80+
81+ - 别名: ` 单改 ` , ` 单修改 ` , ` modify `
82+ - 作用: ** 修改一个指定的软件包的指定版本的清单** ,并在修改完后自动提交拉取请求。
83+ - 用法: ` sundry modify <软件包标识符> <版本> [理由/解决的议题] `
84+ - 示例:
85+ - 最少参数: ` sundry modify XBMCFoundation.Kodi 18.2.0.0 ` (https://github.com/microsoft/winget-pkgs/pull/267613 )
86+ - 指定理由: ` sundry modify XBMCFoundation.Kodi 18.3.0.0 "替换 HTTP 为 HTTPS" ` (https://github.com/microsoft/winget-pkgs/pull/267614 )
87+ - 链接议题:
88+ - 使用议题 URL: ` sundry modify DuckStudio.Sundry 1.2.6 "https://github.com/microsoft/winget-pkgs/issues/267539" `
89+ - 使用议题纯数字编号: ` sundry modify DuckStudio.Sundry 1.2.6 "267539" `
90+ - 使用议题编号: ` sundry modify DuckStudio.Sundry 1.2.6 "#267539" `
91+ - 指定理由的同时链接议题:
92+ ``` pwsh
93+ sundry modify DuckStudio.Sundry 1.2.6 "一些修改。
94+ - Resolves https://github.com/microsoft/winget-pkgs/issues/267539"
95+ ```
96+ > GitHub Docs: [使用关键词将拉取请求链接到议题](https://docs.github.com/zh/issues/tracking-your-work-with-issues/using-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword)
97+
98+ </details>
99+
100+
101+ <details>
102+ <summary><code>sundry ignore</code></summary>
103+
104+ 
105+
106+ - 别名: `忽略`, `检查忽略`, `ignore`
107+ - 作用: **管理 [winget-tools](https://github.com/DuckDuckStudio/winget-tools/) 中的检测脚本的忽略字段。**
108+ - 用法: `sundry ignore <add/remove/edit/list> [忽略字段] [理由]`
109+ - 示例:
110+ - 添加忽略字段: `sundry ignore add "https://www.argyllcms.com/" "服务器冲不动咖啡 (418)"`
111+ - 移除忽略字段: `sundry ignore remove "https://www.argyllcms.com/" "又冲得动了"`
112+ - 编辑忽略字段: `sundry ignore edit`
113+ - 列出所有忽略字段: `sundry ignore list`
114+
115+ </details>
116+
117+
118+ <details>
119+ <summary><code>sundry cat</code></summary>
120+
121+ 
34122
123+ - 别名: 没有别名,只能用 `cat`。
124+ - 作用: **获取指定软件包标识符的指定版本的清单**,可以指定获取所有清单或某个类型的清单。
125+ - 用法: `sundry cat <软件包标识符> <版本> [清单类型] [区域设置(如果是locale类型)]`
126+ - 示例:
127+ - 获取所有清单: `sundry cat DuckStudio.Sundry 1.2.3`
128+ - 亦可使用 `sundry cat DuckStudio.Sundry 1.2.3 all`
129+ - 除 `all` 外还可用 `全部`, `所有`
130+ - 获取指定类型的清单:
131+ - 安装程序清单: `sundry cat DuckStudio.Sundry 1.2.3 i`
132+ - 可以用 `installer`, `安装程序`, `安装`, `i`
133+ - 区域清单: `sundry cat DuckStudio.Sundry 1.2.3 l zh-CN`
134+ - 可以用 `locale`, `区域`, `区域设置`, `l`
135+ - 必须指定具体哪个区域设置的清单
136+ - 版本清单: `sundry cat DuckStudio.Sundry 1.2.3 v`
137+ - 可以用 `version`, `ver`, `v`, `版本`
138+
139+ </details>
140+
141+
142+ <details>
143+ <summary><code>sundry sync</code></summary>
144+
145+ 
146+
147+ - 别名: `sync`, `同步`, `synchronize`, `sync-fork`
148+ - 作用: **同步 fork 仓库和上游仓库的修改。**
149+ - 用法: `sundry sync`
150+ - 示例: `sundry sync`
151+
152+ </details>
153+
154+
155+ <details>
156+ <summary><code>sundry repr</code></summary>
157+
158+ 
159+
160+ - 别名: 没有别名,只能用 `repr`。
161+ - 作用: 等效于 Python 的 `repr()`,用于获取字符串真实的样子。
162+ - 用法: `sundry repr <文件路径/文本内容> [编码(默认 UTF-8)]`
163+ - 示例:
164+ - 文本:
165+ ```pwsh
166+ sundry repr "第一行
167+ 第二行"
168+ ```
169+ - 文件 (假设编码为 gbk): `sundry repr "D:/文件路径/文件.txt" "gbk"`
170+
171+ </details>
172+
173+
174+ <details>
175+ <summary><code>sundry config</code></summary>
176+
177+ 
178+
179+ - 别名: `config`, `配置`
180+ - 作用: 初始化和修改 Sundry 配置。
181+ - 用法: `sundry config <参数...>`
182+ - 示例:
183+ - 初始化配置: `sundry config init`
184+ - 显示当前配置: `sundry config show`
185+ - 修改配置项: `sundry config signature no`
186+
187+ </details>
188+
189+
190+ <details>
191+ <summary><code>sundry revert</code></summary>
192+
193+ 
194+
195+ - 别名: `还原`, `revert`
196+ - 作用: **还原本地仓库的修改**,如果 Sundry 在修改的某个过程中崩溃了,则可以使用此命令还原 Sundry 做的修改。
197+ - 用法: `sundry revert <仓库> <是否已提交> <是否丢弃>`
198+ - 示例:
199+ - 还原所有仓库、未提交、丢弃: `sundry revert all n y`
200+ - 其他类似
201+
202+ </details>
203+
204+
205+ <details>
206+ <summary><code>sundry fun</code></summary>
207+
208+ 
209+
210+ - 别名: 没有别名,只能用 `fun`。
211+ - 作用: **管理 Sundry 的 `fun.txt`。**
212+ - 用法: `sundry fun <random/list/edit/add/remove/import> [参数...]`
213+ - 示例:
214+ - 随机一个: `sundry fun` 或 `sundry fun random`
215+ - 还可以使用 `sundry fun 随机`
216+ - 列出所有: `sundry fun list`
217+ - 可以用 `获取`, `读取`, `get`, `list`
218+ - 编辑 fun.txt: `sundry fun edit`
219+ - 可以用 `编辑`, `edit`, `打开`, `open`
220+ - 添加新的: `sundry fun add "提问: 罗浮六御中谁最幸福? 答案: 符玄。因为她姓符。"`
221+ - 可以用 `add`, `添加`
222+ - 移除原来的: `sundry fun remove "Ciallo~(∠・ω< )⌒☆"`
223+ - 可以用 `remove`, `移除`
224+ - 从其他文件导入(覆盖): `sundry import "D:/文件路径/另一个fun.txt"`
225+ - 可以用 `import`, `导入`
226+
227+ </details>
228+
229+ ## 自己构建
230+ 仓库下有一个[构建流](https://github.com/DuckDuckStudio/Sundry/blob/main/.github/workflows/build.yml),你可以 fork 后直接运行,它会将结果上传为工件。
231+ 大概步骤是:
232+ 1. `cd` 到项目所在目录
233+ 2. 更新代码中的版本号
234+ ```pwsh
235+ python "自动化脚本/修改版本号.py" "2025.520.1314"
236+ ```
237+ 3 . 安装依赖
238+ ``` pwsh
239+ python -m venv .venv
240+ & ".venv\Scripts\Activate.ps1"
241+ python.exe -m pip install --upgrade pip
242+ pip install -r "requirements.txt"
243+ pip install pyinstaller
244+ ```
245+ 4 . 构建
246+ ``` pwsh
247+ pyinstaller --onefile --distpath="Release/pack" --name="sundry.exe" "src/sundry.py"
248+ ```
249+ 5 . 复制所需文件
35250``` bash
36- sundry help
251+ cp -v src/fun.txt Release/pack
252+ cp -v LICENSE Release/pack
37253```
38-
39- ## Demo
40- 这些 PR 是通过 Sundry 创建的:
41- - https://github.com/microsoft/winget-pkgs/pull/232363 (Remove)
42- - https://github.com/microsoft/winget-pkgs/pull/229554 (Modify)
43- - https://github.com/microsoft/winget-pkgs/pull/223814 (New version)
0 commit comments