Handle unknown subcommands in binaries with Runtime::handle_unknown_subcommand
This commit is contained in:
parent
140624ec52
commit
8c1b4124c0
15 changed files with 97 additions and 31 deletions
|
@ -57,7 +57,6 @@ use libimagrt::runtime::Runtime;
|
|||
use libimagrt::setup::generate_runtime_setup;
|
||||
use libimagstore::store::FileLockEntry;
|
||||
use libimagstore::storeid::IntoStoreId;
|
||||
use libimagutil::warn_exit::warn_exit;
|
||||
|
||||
mod ui;
|
||||
|
||||
|
@ -75,7 +74,13 @@ fn main() {
|
|||
"add" => add(&rt),
|
||||
"remove" => remove(&rt),
|
||||
"list" => list(&rt),
|
||||
_ => warn_exit("No commandline call", 1)
|
||||
other => {
|
||||
debug!("Unknown command");
|
||||
let _ = rt.handle_unknown_subcommand("imag-annotation", other, rt.cli())
|
||||
.map_err_trace_exit_unwrap(1)
|
||||
.code()
|
||||
.map(std::process::exit);
|
||||
},
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -53,7 +53,6 @@ use libimagentrygps::types::*;
|
|||
use libimagentrygps::entry::*;
|
||||
use libimagrt::setup::generate_runtime_setup;
|
||||
use libimagrt::runtime::Runtime;
|
||||
use libimagutil::warn_exit::warn_exit;
|
||||
use libimagerror::trace::MapErrTrace;
|
||||
use libimagerror::exit::ExitUnwrap;
|
||||
use libimagerror::io::ToExitCode;
|
||||
|
@ -75,7 +74,13 @@ fn main() {
|
|||
"add" => add(&rt),
|
||||
"remove" => remove(&rt),
|
||||
"get" => get(&rt),
|
||||
_ => warn_exit("No commandline call", 1)
|
||||
other => {
|
||||
debug!("Unknown command");
|
||||
let _ = rt.handle_unknown_subcommand("imag-gps", other, rt.cli())
|
||||
.map_err_trace_exit_unwrap(1)
|
||||
.code()
|
||||
.map(::std::process::exit);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -104,7 +104,13 @@ fn main() {
|
|||
"remove" => remove_linking(&rt),
|
||||
"unlink" => unlink(&rt),
|
||||
"list" => list_linkings(&rt),
|
||||
_ => panic!("BUG"),
|
||||
other => {
|
||||
debug!("Unknown command");
|
||||
let _ = rt.handle_unknown_subcommand("imag-link", other, rt.cli())
|
||||
.map_err_trace_exit_unwrap(1)
|
||||
.code()
|
||||
.map(::std::process::exit);
|
||||
},
|
||||
}
|
||||
})
|
||||
.or_else(|| {
|
||||
|
|
|
@ -67,8 +67,12 @@ fn main() {
|
|||
match name {
|
||||
"deref" => deref(&rt),
|
||||
"remove" => remove(&rt),
|
||||
_ => {
|
||||
debug!("Unknown command"); // More error handling
|
||||
other => {
|
||||
debug!("Unknown command");
|
||||
let _ = rt.handle_unknown_subcommand("imag-ref", other, rt.cli())
|
||||
.map_err_trace_exit_unwrap(1)
|
||||
.code()
|
||||
.map(::std::process::exit);
|
||||
},
|
||||
};
|
||||
});
|
||||
|
|
|
@ -50,6 +50,7 @@ extern crate libimagutil;
|
|||
extern crate libimagutil;
|
||||
|
||||
use libimagrt::setup::generate_runtime_setup;
|
||||
use libimagerror::trace::MapErrTrace;
|
||||
|
||||
mod create;
|
||||
mod delete;
|
||||
|
@ -92,9 +93,12 @@ fn main() {
|
|||
"update" => update(&rt),
|
||||
"verify" => verify(&rt),
|
||||
"dump" => dump(&mut rt),
|
||||
_ => {
|
||||
other => {
|
||||
debug!("Unknown command");
|
||||
// More error handling
|
||||
let _ = rt.handle_unknown_subcommand("imag-store", other, rt.cli())
|
||||
.map_err_trace_exit_unwrap(1)
|
||||
.code()
|
||||
.map(std::process::exit);
|
||||
},
|
||||
};
|
||||
} else {
|
||||
|
|
|
@ -86,9 +86,12 @@ fn main() {
|
|||
debug!("id = {:?}, add = {:?}, rem = {:?}", id, add, rem);
|
||||
alter(&rt, id, add, rem);
|
||||
},
|
||||
_ => {
|
||||
error!("Unknown command");
|
||||
::std::process::exit(1)
|
||||
other => {
|
||||
debug!("Unknown command");
|
||||
let _ = rt.handle_unknown_subcommand("imag-tag", other, rt.cli())
|
||||
.map_err_trace_exit_unwrap(1)
|
||||
.code()
|
||||
.map(std::process::exit);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
|
|
@ -77,8 +77,12 @@ fn main() {
|
|||
"collection" => collection(&rt),
|
||||
"list" => list(&rt),
|
||||
"remove" => remove(&rt),
|
||||
_ => {
|
||||
debug!("Unknown command"); // More error handling
|
||||
other => {
|
||||
debug!("Unknown command");
|
||||
let _ = rt.handle_unknown_subcommand("imag-bookmark", other, rt.cli())
|
||||
.map_err_trace_exit_unwrap(1)
|
||||
.code()
|
||||
.map(::std::process::exit);
|
||||
},
|
||||
}
|
||||
});
|
||||
|
|
|
@ -102,8 +102,12 @@ fn main() {
|
|||
"show" => show(&rt),
|
||||
"find" => find(&rt),
|
||||
"create" => create(&rt),
|
||||
_ => {
|
||||
error!("Unknown command"); // More error handling
|
||||
other => {
|
||||
debug!("Unknown command");
|
||||
let _ = rt.handle_unknown_subcommand("imag-contact", other, rt.cli())
|
||||
.map_err_trace_exit_unwrap(1)
|
||||
.code()
|
||||
.map(::std::process::exit);
|
||||
},
|
||||
}
|
||||
});
|
||||
|
|
|
@ -48,6 +48,7 @@ extern crate libimagtimeui;
|
|||
extern crate libimagutil;
|
||||
|
||||
use libimagrt::setup::generate_runtime_setup;
|
||||
use libimagerror::trace::MapErrTrace;
|
||||
|
||||
mod create;
|
||||
mod delete;
|
||||
|
@ -80,8 +81,12 @@ fn main() {
|
|||
"edit" => edit(&rt),
|
||||
"list" => list(&rt),
|
||||
"view" => view(&rt),
|
||||
_ => {
|
||||
debug!("Unknown command"); // More error handling
|
||||
other => {
|
||||
debug!("Unknown command");
|
||||
let _ = rt.handle_unknown_subcommand("imag-diary", other, rt.cli())
|
||||
.map_err_trace_exit_unwrap(1)
|
||||
.code()
|
||||
.map(std::process::exit);
|
||||
},
|
||||
}
|
||||
});
|
||||
|
|
|
@ -90,9 +90,12 @@ fn main() {
|
|||
"status" => today(&rt, true),
|
||||
"show" => show(&rt),
|
||||
"done" => done(&rt),
|
||||
_ => {
|
||||
debug!("Unknown command"); // More error handling
|
||||
exit(1)
|
||||
other => {
|
||||
debug!("Unknown command");
|
||||
let _ = rt.handle_unknown_subcommand("imag-habit", other, rt.cli())
|
||||
.map_err_trace_exit_unwrap(1)
|
||||
.code()
|
||||
.map(::std::process::exit);
|
||||
},
|
||||
}
|
||||
})
|
||||
|
|
|
@ -72,9 +72,12 @@ fn main() {
|
|||
if let Some(scmd) = rt.cli() .subcommand_name() {
|
||||
match scmd {
|
||||
"show" => show(&rt),
|
||||
_ => {
|
||||
error!("Unknown command");
|
||||
::std::process::exit(1)
|
||||
other => {
|
||||
debug!("Unknown command");
|
||||
let _ = rt.handle_unknown_subcommand("imag-log", other, rt.cli())
|
||||
.map_err_trace_exit_unwrap(1)
|
||||
.code()
|
||||
.map(std::process::exit);
|
||||
},
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -54,7 +54,13 @@ fn main() {
|
|||
"import-mail" => import_mail(&rt),
|
||||
"list" => list(&rt),
|
||||
"mail-store" => mail_store(&rt),
|
||||
_ => debug!("Unknown command") // More error handling
|
||||
other => {
|
||||
debug!("Unknown command");
|
||||
let _ = rt.handle_unknown_subcommand("imag-mail", other, rt.cli())
|
||||
.map_err_trace_exit_unwrap(1)
|
||||
.code()
|
||||
.map(std::process::exit);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
@ -66,8 +66,12 @@ fn main() {
|
|||
"delete" => delete(&rt),
|
||||
"edit" => edit(&rt),
|
||||
"list" => list(&rt),
|
||||
_ => {
|
||||
debug!("Unknown command"); // More error handling
|
||||
other => {
|
||||
debug!("Unknown command");
|
||||
let _ = rt.handle_unknown_subcommand("imag-notes", other, rt.cli())
|
||||
.map_err_trace_exit_unwrap(1)
|
||||
.code()
|
||||
.map(std::process::exit);
|
||||
},
|
||||
};
|
||||
});
|
||||
|
|
|
@ -56,6 +56,7 @@ use week::week;
|
|||
use year::year;
|
||||
|
||||
use libimagrt::setup::generate_runtime_setup;
|
||||
use libimagerror::trace::MapErrTrace;
|
||||
|
||||
fn main() {
|
||||
let version = make_imag_version!();
|
||||
|
@ -77,9 +78,12 @@ fn main() {
|
|||
"track" => track(&rt),
|
||||
"week" => week(&rt),
|
||||
"year" => year(&rt),
|
||||
_ => {
|
||||
error!("Unknown command");
|
||||
1
|
||||
other => {
|
||||
debug!("Unknown command");
|
||||
rt.handle_unknown_subcommand("imag-timetrack", other, rt.cli())
|
||||
.map_err_trace_exit_unwrap(1)
|
||||
.code()
|
||||
.unwrap_or(0)
|
||||
},
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -51,10 +51,16 @@ fn main() {
|
|||
match rt.cli().subcommand_name() {
|
||||
Some("tw-hook") => tw_hook(&rt),
|
||||
Some("list") => list(&rt),
|
||||
Some(other) => {
|
||||
debug!("Unknown command");
|
||||
let _ = rt.handle_unknown_subcommand("imag-todo", other, rt.cli())
|
||||
.map_err_trace_exit_unwrap(1)
|
||||
.code()
|
||||
.map(std::process::exit);
|
||||
}
|
||||
None => {
|
||||
warn!("No command");
|
||||
},
|
||||
_ => unreachable!(),
|
||||
} // end match scmd
|
||||
} // end main
|
||||
|
||||
|
|
Loading…
Reference in a new issue