35 lines
1001 B
Rust
35 lines
1001 B
Rust
#[macro_use] extern crate clap;
|
|
extern crate names;
|
|
|
|
use clap::{App, Arg};
|
|
use names::{Generator, Name};
|
|
|
|
fn main() {
|
|
let matches = App::new("names")
|
|
.version(&crate_version!()[..])
|
|
.author("\nAuthor: Fletcher Nichol <fnichol@nichol.ca>\n")
|
|
.about("A random name generator with results like `delirious-pail'.")
|
|
.arg(Arg::with_name("amount")
|
|
.help("Number of names to generate (default: 1)")
|
|
.index(1)
|
|
)
|
|
.arg(Arg::with_name("number")
|
|
.short("n")
|
|
.long("number")
|
|
.help("Adds a random number to the name(s)")
|
|
)
|
|
.get_matches();
|
|
|
|
let amount = value_t!(matches.value_of("amount"), usize).unwrap_or(1);
|
|
let naming: Name = if matches.is_present("number") {
|
|
Name::Numbered
|
|
} else {
|
|
Default::default()
|
|
};
|
|
|
|
let mut generator = Generator::with_naming(naming);
|
|
for _ in 0..amount {
|
|
println!("{}", generator.next().unwrap());
|
|
}
|
|
}
|