russellbanks/Komac 是一个托管在 GitHub 上的开源项目,主要使用 Rust 编写,采用 GNU General Public License v3.0 许可证,目前获得 489 个 Star、32 次 Fork。
仓库全名
russellbanks/Komac
README 摘要
Komac: Smart Manifest Automation for WinGet A fast, intelligent CLI to create and submit WinGet manifests . Think: automation, deep installer analysis, and zero YAML wrangling. ⚡ Quick start 🎯 Features 🔄 Advanced installer analysis Inno Setup Nullsoft Scriptable Install System MSI Burn 🌍 Cross-platform support (Windows, Linux, macOS) Installation Komac is cross-platform and binaries are built for Windows, Linux,…
Komac is cross-platform and binaries are built for Windows, Linux, and macOS.
All platforms
If you have cargo installed, you can compile Rust for any platform:
cargo install --locked komac
By default, komac builds with native-tls.
On Linux, this builds OpenSSL and requires a C compiler, perl (and
perl-core), and make.
For specific dependencies, see openssl/#automatic.
Nightly releases that are built every week are
available here.
These are useful for debugging or if you want the latest features and fixes.
Windows
Both portable EXEs and installers are available from the releases.
WinGet
winget install komac
Scoop
scoop install komac
Linux
Portable binaries are available from the releases.
Debian (.deb)and Red Hat (.rpm) installers are also available.
macOS
Portable binaries for macOS are available from the releases.
Homebrew
brew install komac
GitHub Token Setup
komac needs a classic GitHub token to submit PRs to winget-pkgs.
This should be a classic token with the public_repo scope.
Adding to komac:
komac token add
The token can be also be obtained using the GitHub CLI:
komac token add --token=$(gh auth token)
Why not fine-grained tokens?
Whilst Komac can fully create manifests and commit with a fine-grained token, it fails to create a pull request to
winget-pkgs. This may change as fine-grained tokens improve.
See https://github.com/russellbanks/Komac/issues/310.
While other manifest creation tools have made a solid foundation for the manifests in winget-pkgs, their development
pace
is slower and lacks the deeper installer analysis that komac is capable of.
Opt-in feature (not enabled by default due to slow processing)
Programming Language
Rust
C#
PowerShell
[^1]: Telemetry is enabled by default in WingetCreate. Use wingetcreate settings to manually disable telemetry.
[^2]: There is much more accurate detection for Inno, Nullsoft, and Burn installers since Komac v2.
[^3]: The logic for this was contributed by me :)
Check issues that I’ve opened to request
this feature for YamlCreate.
GitHub Actions 🌟
WinGet Releaser is a GitHub Action that invokes Komac, passing in
your release’s URLs. This completely automates
publishing to WinGet.
Example 📝
name: Publish to 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$' # Only .exe files
🧑💻 Use Komac and create an issue for feature requests or bugs.
Star History ⭐
License
Komac is Free Software: You can use, study share and improve it at your will. Specifically you can redistribute and/or
modify it under the terms of the GNU General Public License as published
by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
评论