diff --git a/CHANGELOG.md b/CHANGELOG.md index 533ea84..23b8be1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,8 @@ Changelog UNRELEASED - 2020-04-23 ----------------------- -- :bug: [`xxxxxxxxxxxx`](https://github.com/casey/intermodal/commits/master) Fix `bin/package` - _Casey Rodarmor _ +- :books: [`xxxxxxxxxxxx`](https://github.com/casey/intermodal/commits/master) Add notes for packagers to readme - _Casey Rodarmor _ +- :bug: [`43788cac9a0c`](https://github.com/casey/intermodal/commit/43788cac9a0cb957605fbd16299d04d36a7e0411) Fix `bin/package` - _Casey Rodarmor _ [v0.1.7](https://github.com/casey/intermodal/releases/tag/v0.1.7) - 2020-04-22 diff --git a/README.md b/README.md index 844ab1a..414f295 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,13 @@ For more about the project and its goals, check out - [Pre-built binaries](#pre-built-binaries) - [Linux and MacOS Install Script](#linux-and-macos-install-script) - [Cargo](#cargo) -- [Shell Completion Scripts](#shell-completion-scripts) + - [Shell Completion Scripts](#shell-completion-scripts) +- [Notes for Packagers](#notes-for-packagers) + - [Package Artifacts](#package-artifacts) + - [Binary](#binary) + - [Man Pages](#man-pages) + - [Completion Scripts](#completion-scripts) + - [Release Updates](#release-updates) - [Chat](#chat) - [Contributing](#contributing) - [Semantic Versioning](#semantic-versioning) @@ -93,7 +99,7 @@ echo 'set -gx PATH ~/bin $PATH' >> ~/.config/fish/config.fish source and installed with `cargo install imdl`. To get Rust, use the [rustup installer](https://rustup.rs/). -## Shell Completion Scripts +### Shell Completion Scripts Shell completion scripts for Bash, Zsh, Fish, PowerShell, and Elvish are included in all [binary releases](https://github.com/casey/imdl/releases). @@ -125,6 +131,70 @@ command will write the Z shell completion script to `$fpath[0]/_imdl`: $ imdl completions --shell zsh --dir $fpath[0] ``` +## Notes for Packagers + +First off, thank you very much! If I can do anything to make packaging +Intermodal easier, please don't hesistate to open +[an issue](https://github.com/casey/intermodal/issues/new). + +The Intermodal binary is called `imdl`, and the suggested name for the package +is `intermodal`. + +Intermodal is written in Rust, and can be built with `cargo build --release`. + +Intermodal is distributed under the +[Creative Commons Zero](https://creativecommons.org/share-your-work/public-domain/cc0/), +a public domain dedication with a fallback all-permissive license. The SPDX +identifier of the CC0 is [CC0-1.0](https://spdx.org/licenses/CC0-1.0.html). + +### Package Artifacts + +There are three primary build artifacts: the binary, the man pages, and shell +completion scripts. + +#### Binary + +The binary is called `imdl`, and can be built with: + +``` +cargo build --release +``` + +After building, the binary will be present at `target/release/imdl`. + +#### Man Pages + +Intermodal has a number of subcommands, each of which has a man page. The man +pages are generated from the `--help` text using +[`help2man`](https://www.gnu.org/software/help2man/). + +To generate the man pages, ensure `help2man` is available, and run: + +``` +mkdir -p man +cargo run --package gen man +``` + +After building, the man pages will be available in `man`. + +#### Completion Scripts + +Completion scripts are available for a number of shells. To generate them, run: + +``` +mkdir -p completions +cargo run --release completions --dir completions +``` + +After running, the completion scripts will be available in `completions`. + +### Release Updates + +If you'd like to receive updates whenever a new version is released, you can +watch the intermodal repository in "Releases only" mode: + +![GitHub Watch options dropdown showing "Releases only" highlighted](rsc/watch-releases.png) + ## Chat The primary chat is on [Discord](https://discord.gg/HaaT5Qz), but I try to also diff --git a/bin/gen/templates/README.md b/bin/gen/templates/README.md index 185769f..c3ac38b 100644 --- a/bin/gen/templates/README.md +++ b/bin/gen/templates/README.md @@ -76,7 +76,7 @@ echo 'set -gx PATH ~/bin $PATH' >> ~/.config/fish/config.fish source and installed with `cargo install imdl`. To get Rust, use the [rustup installer](https://rustup.rs/). -## Shell Completion Scripts +### Shell Completion Scripts Shell completion scripts for Bash, Zsh, Fish, PowerShell, and Elvish are included in all [binary releases](https://github.com/casey/imdl/releases). @@ -108,6 +108,70 @@ command will write the Z shell completion script to `$fpath[0]/_imdl`: $ imdl completions --shell zsh --dir $fpath[0] ``` +## Notes for Packagers + +First off, thank you very much! If I can do anything to make packaging +Intermodal easier, please don't hesistate to open +[an issue](https://github.com/casey/intermodal/issues/new). + +The Intermodal binary is called `imdl`, and the suggested name for the package +is `intermodal`. + +Intermodal is written in Rust, and can be built with `cargo build --release`. + +Intermodal is distributed under the +[Creative Commons Zero](https://creativecommons.org/share-your-work/public-domain/cc0/), +a public domain dedication with a fallback all-permissive license. The SPDX +identifier of the CC0 is [CC0-1.0](https://spdx.org/licenses/CC0-1.0.html). + +### Package Artifacts + +There are three primary build artifacts: the binary, the man pages, and shell +completion scripts. + +#### Binary + +The binary is called `imdl`, and can be built with: + +``` +cargo build --release +``` + +After building, the binary will be present at `target/release/imdl`. + +#### Man Pages + +Intermodal has a number of subcommands, each of which has a man page. The man +pages are generated from the `--help` text using +[`help2man`](https://www.gnu.org/software/help2man/). + +To generate the man pages, ensure `help2man` is available, and run: + +``` +mkdir -p man +cargo run --package gen man +``` + +After building, the man pages will be available in `man`. + +#### Completion Scripts + +Completion scripts are available for a number of shells. To generate them, run: + +``` +mkdir -p completions +cargo run --release completions --dir completions +``` + +After running, the completion scripts will be available in `completions`. + +### Release Updates + +If you'd like to receive updates whenever a new version is released, you can +watch the intermodal repository in "Releases only" mode: + +![GitHub Watch options dropdown showing "Releases only" highlighted](rsc/watch-releases.png) + ## Chat The primary chat is on [Discord](https://discord.gg/HaaT5Qz), but I try to also diff --git a/rsc/watch-releases.png b/rsc/watch-releases.png new file mode 100644 index 0000000..e5f157f Binary files /dev/null and b/rsc/watch-releases.png differ diff --git a/src/main.rs b/src/main.rs index 31bb9b9..1e322eb 100644 --- a/src/main.rs +++ b/src/main.rs @@ -16,7 +16,9 @@ clippy::shadow_reuse, clippy::too_many_lines, clippy::unseparated_literal_suffix, - clippy::wildcard_enum_match_arm + clippy::wildcard_enum_match_arm, + clippy::wildcard_imports, + clippy::struct_excessive_bools )] use crate::common::*;