Crates.io | publisher |
lib.rs | publisher |
version | 0.1.9 |
source | src |
created_at | 2023-03-06 15:09:03.332798 |
updated_at | 2024-09-17 12:56:15.829071 |
description | Tool to publish & distribute CLI tools |
homepage | https://github.com/termapps/publisher |
repository | https://github.com/termapps/publisher |
max_upload_size | |
id | 802695 |
size | 114,208 |
Tool to publish & distribute CLI tools
NOTE: Only supports tools hosted in GitHub for now.
Setup publishing configuration. (Only needed for first time setup).
publisher init
Setup your CI pipeline to build release artifacts. (Only needed for first time setup).
publisher generate ci
Update your code, commit and push to repository with a version tag.
git tag v1.0.0
git push --tags
Check that you meet all requirements for publishing to configured package repositories.
publisher check
Run the following to publish a version to configured package repositories.
publisher publish 1.0.0
Discover more subcommands and options.
publisher help
Used for installing the built binary:
Used for building from source:
publisher
is available on Linux, macOS & Windows
cargo install publisher
brew install termapps/tap/publisher
yay -S publisher
scoop bucket add termapps https://github.com/termapps/scoop-bucket
scoop install publisher
nix profile install github:termapps/nixpkgs#publisher
Pre-built binary executables are available at releases page.
Download, unarchive the binary, and then put the executable in $PATH
.
Publisher can be configured using publisher.toml
file. The below options are avaialable:
Name | Type | Required | Description |
---|---|---|---|
name |
string | Yes1 | Name of the binary |
description |
string | Yes1 | Description of the project |
homepage |
string | Yes1 | URL of the project homepage |
license |
string | Yes1 | License |
repository |
string | Yes | URI of the GitHub repository (ex: termapps/publisher) |
exclude |
string[] | No | Package Repository selection |
homebrew |
object | Yes | Homebrew |
aur |
object | No | AUR |
aur_bin |
object | No | AUR (binary) |
scoop |
object | Yes | Scoop |
nix |
object | No | Nix |
Name | Type | Required | Description |
---|---|---|---|
name |
string | No | Name of the formula |
repository |
string | Yes | GitHub repository for the homebrew tap |
name
defaults to the binary name.Name | Type | Required | Description |
---|---|---|---|
name |
string | No | Name of the package |
conflicts |
string[] | No | Packages in AUR that conflict with this |
name
defaults to the binary name.AUR (binary)
package to conflicts
if it is selected.Name | Type | Required | Description |
---|---|---|---|
name |
string | No | Name of the package |
conflicts |
string[] | No | Packages in AUR that conflict with this |
name
defaults to the binary name concatenated with -bin
.AUR
package to conflicts
if it is selected.Name | Type | Required | Description |
---|---|---|---|
name |
string | No | Name of the app |
repository |
string | Yes | GitHub repository for the scoop bucket |
name
defaults to the binary name.Name | Type | Required | Description |
---|---|---|---|
name |
string | No | Name of the package |
repository |
string | No | GitHub repository for the nix package |
path |
string | No | Path of the package in the repo |
lockfile |
bool | No | Whether to update flake lockfile |
name
defaults to the binary name.repository
defaults to binary's GitHub repository.path
defaults to flake.nix
.%n
can be used in path
to substitute with name. For example, %n/flake.nix
creates the package at publisher/flake.nix
location.lockfile
defaults to true
and is needed to install the package most of the time.exclude
is configured, then those will be excluded from the above selected package repositories.Here is a list of Contributors
Please see CHANGELOG.md.
MIT/X11
Report here.
Pavan Kumar Sunkara (pavan.sss1991@gmail.com)