From ada8c261255db446b62785122770d8ee3ba3555a Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 18 Apr 2022 13:15:07 +0200 Subject: [PATCH] cli --- Cargo.toml | 1 + src/cut.rs | 24 +++++++++++++++--------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 4e8fddb..946421a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -33,6 +33,7 @@ console_error_panic_hook = { version = "0.1.6", optional = true } # Unfortunately, `wee_alloc` requires nightly Rust when targeting wasm for now. wee_alloc = { version = "0.4.5", optional = true } pretty_assertions = "1.2.1" +clap = { version = "3.1.9", features = ["derive"] } [dev-dependencies] wasm-bindgen-test = "0.3.13" diff --git a/src/cut.rs b/src/cut.rs index 2c4a93b..30933cb 100644 --- a/src/cut.rs +++ b/src/cut.rs @@ -1,15 +1,21 @@ +use clap::Parser; use democutter::cut; -use std::env; use std::fs; +#[derive(Parser, Debug)] +#[clap(author, version, about, long_about = None)] +struct Args { + /// Path to the source demo + path: String, + /// Start tick + start: u32, + /// End tick + end: Option, +} + fn main() { - let args: Vec<_> = env::args().collect(); - if args.len() < 2 { - println!("1 argument required"); - return; - } - let path = args[1].clone(); - let file = fs::read(path).unwrap(); - let output = cut(&file, 30000, 50000); + let args = Args::parse(); + let file = fs::read(&args.path).unwrap(); + let output = cut(&file, args.start, args.end.unwrap_or(u32::MAX)); fs::write("out.dem", output).unwrap(); }