package-bootstrap

Crates.iopackage-bootstrap
lib.rspackage-bootstrap
version0.4.0
sourcesrc
created_at2023-03-27 19:22:31.312514
updated_at2024-01-19 23:21:22.012614
descriptionAn embeddable solution for installing build artifacts
homepage
repositoryhttps://codeberg.org/jeang3nie/package-bootstrap
max_upload_size
id822397
size17,426
Nathan Fisher (nfisher1226)

documentation

README

Contents

About

Package bootstrap is an embeddable installer for Rust binaries that allows the reuse of the code in your project to generate shell completions, manpages and other artifacts and install them into directories appropriate for a Unix system.

Usage

# Cargo.toml
[[bin]]
name = "bootstrap"
path = "src/bootstrap.rs

[dependencies.package_bootstrap]
version = "0.1"
features = ["complete", "mangen"]
// bootstrap.rs
use clap::Command;
use package_bootstrap::Bootstrap;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let cmd = Command::new("foo")
        .about("manage all of your bars");

    let bootstrap = Bootstrap::new("foo", cmd);
    bootstrap.install(Path::new("pkg/usr", 1)?;
}

With a little extra setup, bootstrap can use the same function as your binary to generate the clap::Command struct.

# Cargo.toml
[workspace]
members = "cli"

[workspace.dependencies]
clap = 4.1
cli = { path = "cli" }
// cli/src/lib.rs
pub fn cli() -> clap::Command {
    Command::new("foo")
        .about("Handle all of your bars")
}

Features

  • default: complete - generates and installs shell completions from your clap::Command struct
  • mangen: - generates and installs a Unix manual page from your clap::Command struct

Supported shells:

  • bash
  • elvish
  • fish
  • nushell
  • powershell
  • zsh
Commit count: 0

cargo fmt