- Notifications
You must be signed in to change notification settings - Fork0
Tool to publish & distribute CLI tools
License
termapps/publisher
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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.0git push --tags
Check that you meet all requirements for publishing to configuredpackage repositories.
publisher check
Run the following to publish a version to configuredpackage 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
WithCargo
cargo install publisher
WithHomebrew
brew install termapps/tap/publisher
WithAUR (binary)
yay -S publisher
WithScoop
scoop bucket add termapps https://github.com/termapps/scoop-bucketscoop install publisher
WithNix
nix profile install github:termapps/nixpkgs#publisher
Pre-built binary executables are available atreleases page.
Download, unarchive the binary, and then put the executable in$PATH
.
Publisher can be configured usingpublisher.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.- Automatically adds
AUR (binary)
package toconflicts
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
.- Automatically adds
AUR
package toconflicts
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 toflake.nix
.%n
can be used inpath
to substitute with name. For example,%n/flake.nix
creates the package atpublisher/flake.nix
location.lockfile
defaults totrue
and is needed to install the package most of the time.
- By default, all the availablepackage repositories are selected if not specified in the subcommand.
- If
exclude
is configured, then those will be excluded from the above selected package repositories.
Here is a list ofContributors
Please seeCHANGELOG.md.
MIT/X11
Reporthere.
Pavan Kumar Sunkara (pavan.sss1991@gmail.com)
Footnotes
About
Tool to publish & distribute CLI tools