convert arg parsing errors into stderr printing, remove main_cli

This commit is contained in:
Markus Unterwaditzer
2025-11-18 12:12:08 +01:00
committed by Markus Unterwaditzer
parent 4cdc9961d3
commit f6e118a5cc
2 changed files with 11 additions and 15 deletions

View File

@@ -313,9 +313,13 @@ pub fn run_with_callback<'a>(
.context("Failed to create Tokio runtime")?
.block_on(async {
let args = std::iter::once("installer").chain(args);
let parsed_args = Args::try_parse_from(args).context("Failed to parse arguments")?;
run(parsed_args).await
match Args::try_parse_from(args) {
Ok(parsed_args) => run(parsed_args).await,
Err(e) => {
eprintln!("{}", e);
Ok(())
}
}
})
}
@@ -323,12 +327,3 @@ pub fn run_with_callback<'a>(
pub fn version() -> &'static str {
env!("CARGO_PKG_VERSION")
}
/// Run the CLI installer
///
/// This function is public so the binary can call it, but library users
/// should use the typed functions like `run_with_callback` instead.
pub async fn main_cli() -> Result<(), Error> {
let args = Args::parse();
run(args).await
}

View File

@@ -1,6 +1,7 @@
#[tokio::main(flavor = "current_thread")]
async fn main() {
if let Err(e) = installer::main_cli().await {
fn main() {
let args: Vec<String> = std::env::args().skip(1).collect();
if let Err(e) = installer::run_with_callback(args.iter().map(|s| s.as_str()), None) {
eprintln!("{e:?}");
std::process::exit(1);
}