Komac - 又一个 WinGet 清单创建工具
Komac 是一个高级命令行界面工具,专为 WinGet 社区仓库 创建清单文件而设计。
Komac 不仅运行速度极快 🔥,而且内存占用极低,在我的机器上仅使用约 3.5MB 内存。
安装
Komac 是跨平台的,可以在 Windows、Linux、macOS 和 FreeBSD 上运行。
所有平台
如果你已安装 cargo,可以为任何平台编译 Rust
cargo install --locked komac
Komac 也支持 cargo-binstall:
cargo binstall komac
Windows
可从 发布页面 下载便携版 EXE 和安装程序。
WinGet
winget install komac
Scoop
scoop install komac
Linux
可从 发布页面 下载便携版二进制文件。也提供 Debian(.deb)和 Red Hat(.rpm)安装包。
macOS
可从 发布页面 下载 macOS 便携版二进制文件。
Homebrew
brew install russellbanks/tap/komac
GitHub 令牌
Komac 目前只能使用经典令牌。虽然 Komac 可以使用细粒度令牌完全创建清单和提交,但无法向 winget-pkgs 创建拉取请求。随着细粒度令牌的改进,这种情况可能会改变。详见 https://github.com/russellbanks/Komac/issues/310。
经典令牌
需要具有 public_repo
权限的经典令牌。
命令
命令 | 描述 | 用法 |
---|---|---|
New | 从头创建一个包 | new |
Update | 更新 winget-pkgs 中已存在的包 | update |
Remove | 从 winget-pkgs 中移除一个版本 | remove |
Branch Cleanup | 删除已合并或关闭的 winget-pkgs 拉取请求的分支 | cleanup |
Token update | 更新存储的 GitHub OAuth 令牌 | token update |
Token remove | 删除存储的 GitHub OAuth 令牌 | token remove |
使用新版本更新现有包
komac update Package.Identifier --version 1.2.3 --urls https://www.firstUrl.com https://www.secondUrl.com --submit
参数 | 用法 | 注释 |
---|---|---|
包标识符 | komac update Package.Identifier | |
版本 | --version | |
URL | --urls | URL 之间用空格分隔 |
自动提交 | --submit | |
令牌(如果尚未存储) | --token | Komac 会检查 GITHUB_TOKEN 环境变量 |
Komac 与其他工具的对比 🏆
虽然其他清单创建工具在 winget-pkgs 社区中取得了显著进展,但它们的开发速度明显较慢,且缺乏 Komac 所具备的高级检测功能。
Komac | WingetCreate | YamlCreate | |
---|---|---|---|
参数 | ✅ | ✅ | ❌ |
无需Git即可工作 | ✅ | ✅ | ❌ |
优化的清单排序 1 | ✅ | ✅️ | ✅ |
完全跨平台 | ✅ | ❌ | 有限 |
完整的MSI值检索 | ✅ | 部分 | 部分 |
Linux和macOS MSI支持 | ✅ | ❌ | ❌ |
完整的MSIX值检索 | ✅ | 部分 | 部分 - https://github.com/Trenly/winget-pkgs/issues/180 |
从GitHub获取信息 | ✅ | ✅ | ❌ |
格式化的GitHub发布说明检索 | ✅ | ❌ | ❌ |
发布日期识别 | ✅ | ❌ | ❌ |
无遥测 | ✅ | ⭕ 2 | ✅ |
完全独立(无需克隆winget-pkgs) | ✅ | ✅ | ❌ |
类型安全 | ✅ | ✅ | ❌ |
Inno安装程序检测 | ✅ 3 | ✅ | ✅ 4 |
Nullsoft安装程序检测 | ✅ 3 | ✅ | ✅ 4 |
Burn安装程序检测 | ✅ 3 | ✅ | 可选功能(由于处理速度慢,默认未启用) |
下载时的进度条和预计完成时间 | ✅ | ❌ | ❌ |
编程语言 | Rust | C# | PowerShell |
在GitHub Actions中使用:WinGet Releaser 🌟
WinGet Releaser是一个GitHub Action,它调用Komac并传入您的发布URL。这完全自动化了发布到WinGet的过程。
示例 📝
name: 发布到WinGet
on:
release:
types: [ released ]
jobs:
publish:
runs-on: windows-latest
steps:
- uses: vedantmgoyal9/winget-releaser@main
with:
identifier: Package.Identifier
token: ${{ secrets.WINGET_TOKEN }}
# installers-regex: '\.exe$' # 仅.exe文件
替代操作 🔄
- 手动运行Komac:michidk/run-komac
- 为外部仓库自动发布:michidk/winget-updater
我如何支持Komac? ❤️
- 🤝 通过GitHub Sponsors赞助这个项目
- ⭐ 给这个项目点星!:)
- 🧑💻 使用Komac并创建一个问题来提出功能请求或报告错误。
星标历史 ⭐
许可证
Komac是自由软件:您可以随意使用、研究、分享和改进它。具体来说,您可以根据自由软件基金会发布的GNU通用公共许可证的条款重新分发和/或修改它,可以选择使用该许可证的第3版或(由您选择)任何更新的版本。