From 93c5908c98cc16d103572ab28b1c56662123b3df Mon Sep 17 00:00:00 2001 From: Tomas Rokos Date: Sun, 3 Oct 2021 11:57:28 -0500 Subject: [PATCH 1/2] Seq: Add --terminator flag --- seq/src/cli.rs | 8 ++++++++ seq/src/main.rs | 7 ++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/seq/src/cli.rs b/seq/src/cli.rs index 63cab8d5..941beb95 100644 --- a/seq/src/cli.rs +++ b/seq/src/cli.rs @@ -21,6 +21,14 @@ pub(crate) fn create_app<'a, 'b>() -> App<'a, 'b> { .hide_default_value(true) .default_value("\n"), ) + .arg( + Arg::with_name("TERMINATOR") + .short("t") + .long("terminator") + .help("Terminator of the values") + .hide_default_value(true) + .default_value("\n"), + ) .arg( Arg::with_name("WIDTH") .short("w") diff --git a/seq/src/main.rs b/seq/src/main.rs index 90d1de39..51910253 100644 --- a/seq/src/main.rs +++ b/seq/src/main.rs @@ -15,13 +15,14 @@ fn main() { let decimals = max_decimal_digits(&args); let padding = if matches.is_present("WIDTH") { Some(max_digits(&args)) } else { None }; let (first, inc, last) = find_operands(&args); + let terminator = matches.value_of("TERMINATOR").unwrap_or("\n"); let valid_range = (first <= last && inc > 0.0) || (first >= last && inc < 0.0); if valid_range { let seq = Seq::new(first, inc, last, decimals, separator, padding); for val in seq.into_iter() { print!("{}", val); } - println!(); + print!("\n{}", terminator); } } else { eprintln!("seq: missing operand\n Try 'seq --help' for more information."); @@ -42,7 +43,7 @@ fn find_operands(args: &[&str]) -> (f64, f64, f64) { } (parse_float(args[0]), inc, parse_float(args[2])) - }, + } } } @@ -126,7 +127,7 @@ impl Iterator for SeqIterator { } padded - }, + } _ => value, }; From e47980eb9acbfa92bb5643da336cda00a12e26ac Mon Sep 17 00:00:00 2001 From: Tomas Rokos Date: Mon, 4 Oct 2021 10:31:15 -0500 Subject: [PATCH 2/2] Seq: Fix issues with compatibility and improve help --- seq/src/cli.rs | 2 +- seq/src/main.rs | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/seq/src/cli.rs b/seq/src/cli.rs index 941beb95..4c0ed450 100644 --- a/seq/src/cli.rs +++ b/seq/src/cli.rs @@ -25,7 +25,7 @@ pub(crate) fn create_app<'a, 'b>() -> App<'a, 'b> { Arg::with_name("TERMINATOR") .short("t") .long("terminator") - .help("Terminator of the values") + .help("Terminator of the values.") .hide_default_value(true) .default_value("\n"), ) diff --git a/seq/src/main.rs b/seq/src/main.rs index 51910253..c6239308 100644 --- a/seq/src/main.rs +++ b/seq/src/main.rs @@ -22,7 +22,7 @@ fn main() { for val in seq.into_iter() { print!("{}", val); } - print!("\n{}", terminator); + print!("{}", terminator); } } else { eprintln!("seq: missing operand\n Try 'seq --help' for more information."); @@ -43,7 +43,7 @@ fn find_operands(args: &[&str]) -> (f64, f64, f64) { } (parse_float(args[0]), inc, parse_float(args[2])) - } + }, } } @@ -127,7 +127,7 @@ impl Iterator for SeqIterator { } padded - } + }, _ => value, };