From 19d06163246513621373113e603a01a970214ff2 Mon Sep 17 00:00:00 2001 From: Lea Fairbanks <lea.rae.fairbanks@gmail.com> Date: Tue, 31 May 2022 17:57:05 +1200 Subject: [PATCH 1/2] Add cli overrides --- README.md | 10 ++++++++++ src/main.rs | 20 +++++++++++++++++++- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 11c58489..357651c0 100644 --- a/README.md +++ b/README.md @@ -57,6 +57,16 @@ yes 21:15:30 [INFO] Installation complete! ``` +### Unsupported crates + +To install an unsupported crate, you may specify the Cargo.toml metadata entries for `pkg-url`, `bin-dir`, and `pkg-fmt` at the command line, with values [as documented below](#supporting-binary-installation). + +For example: +``` +$ binstall \ + --pkg-url="{ repo }/releases/download/{ version }/{ name }-{ version }-{ target }.{ format }" \ + --pkg-fmt="txz" crate_name +``` ## Status diff --git a/src/main.rs b/src/main.rs index f35064c0..f0a0c5e6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -60,6 +60,18 @@ struct Options { /// Utility log level #[structopt(long, default_value = "info")] log_level: LevelFilter, + + /// Override Cargo.toml package manifest bin-dir. + #[structopt(long)] + bin_dir: Option<String>, + + /// Override Cargo.toml package manifest pkg-fmt. + #[structopt(long)] + pkg_fmt: Option<PkgFmt>, + + /// Override Cargo.toml package manifest pkg-url. + #[structopt(long)] + pkg_url: Option<String>, } #[tokio::main] @@ -73,7 +85,12 @@ async fn main() -> Result<(), anyhow::Error> { } // Load options - let opts = Options::from_iter(args.iter()); + let mut opts = Options::from_iter(args.iter()); + let cli_overrides = PkgOverride { + pkg_url: opts.pkg_url.take(), + pkg_fmt: opts.pkg_fmt.take(), + bin_dir: opts.bin_dir.take(), + }; // Setup logging let mut log_config = ConfigBuilder::new(); @@ -133,6 +150,7 @@ async fn main() -> Result<(), anyhow::Error> { meta.merge(&o); } + meta.merge(&cli_overrides); debug!("Found metadata: {:?}", meta); // Compute install directory From 2f9be15c30c641eaa0825b303bb8b4f8fb7a2d7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fe=CC=81lix=20Saparelli?= <felix@passcod.name> Date: Tue, 31 May 2022 18:01:29 +1200 Subject: [PATCH 2/2] Fix old template specifier in readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 357651c0..b72a5d56 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ To install an unsupported crate, you may specify the Cargo.toml metadata entries For example: ``` $ binstall \ - --pkg-url="{ repo }/releases/download/{ version }/{ name }-{ version }-{ target }.{ format }" \ + --pkg-url="{ repo }/releases/download/{ version }/{ name }-{ version }-{ target }.{ archive-format }" \ --pkg-fmt="txz" crate_name ```