31 lines
877 B
Rust
31 lines
877 B
Rust
use clap::{App, Arg};
|
|
|
|
fn main() {
|
|
let matches = App::new("echor")
|
|
.version("0.1.0")
|
|
.author("perro <hi@perrotuerto.blog>")
|
|
.about("Rust echo")
|
|
.arg(
|
|
Arg::with_name("text")
|
|
.value_name("TEXTO")
|
|
.help("Texto de entrada")
|
|
.required(true)
|
|
.min_values(1),
|
|
)
|
|
.arg(
|
|
Arg::with_name("omit_newline")
|
|
.short("n")
|
|
.help("No imprime nueva línea")
|
|
.takes_value(false),
|
|
)
|
|
.get_matches();
|
|
// OJO: unwrap es seguro de llamar porque 'text' está forzado en tener al menos un valor
|
|
let text = matches.values_of_lossy("text").unwrap();
|
|
let ending = if matches.is_present("omit_newline") {
|
|
""
|
|
} else {
|
|
"\n"
|
|
};
|
|
print!("{}{}", text.join(" "), ending);
|
|
}
|