summaryrefslogtreecommitdiffstats
path: root/src/main.rs
diff options
context:
space:
mode:
authorSaurav Sharma <appdroiddeveloper@gmail.com>2019-08-20 10:27:25 +0545
committerMatan Kushner <hello@matchai.me>2019-08-20 00:42:25 -0400
commit075a76897cc28a6775c42b1d01a9c344c0f75ef0 (patch)
tree4f348709752d552694bda25e7f599359933be397 /src/main.rs
parent0e82c19f37e80e258ad7f0e6136a2bcf37c9648a (diff)
fix: Change panicking on unknown module to error print and support module listing flag (#197)
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/main.rs b/src/main.rs
index 7143a59bf..16d0e3025 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -10,6 +10,7 @@ mod print;
mod segment;
mod utils;
+use crate::module::ALL_MODULES;
use clap::{App, AppSettings, Arg, SubCommand};
fn main() {
@@ -91,7 +92,14 @@ fn main() {
.arg(
Arg::with_name("name")
.help("The name of the module to be printed")
- .required(true),
+ .required(true)
+ .required_unless("list"),
+ )
+ .arg(
+ Arg::with_name("list")
+ .short("l")
+ .long("list")
+ .help("List out all supported modules"),
)
.arg(&status_code_arg)
.arg(&path_arg)
@@ -112,8 +120,16 @@ fn main() {
}
("prompt", Some(sub_m)) => print::prompt(sub_m.clone()),
("module", Some(sub_m)) => {
- let module_name = sub_m.value_of("name").expect("Module name missing.");
- print::module(module_name, sub_m.clone());
+ if sub_m.is_present("list") {
+ println!("Supported modules list");
+ println!("----------------------");
+ for modules in ALL_MODULES {
+ println!("{}", modules);
+ }
+ }
+ if let Some(module_name) = sub_m.value_of("name") {
+ print::module(module_name, sub_m.clone());
+ }
}
_ => {}
}