[snowpatch] [PATCH 1/3] Rework main() to return a Result()
Andrew Donnellan
andrew.donnellan at au1.ibm.com
Thu Dec 13 14:07:54 AEDT 2018
On 13/12/18 1:43 pm, Michael Ellerman wrote:
> Turn main() into run() and have it return a Result(). Then in main()
> we print a message for the error case.
>
> We could just return Result() directly from main() but that prints the
> Err() with {:?} which is ugly.
add a signoff
otherwise,
Reviewed-by: Andrew Donnellan <andrew.donnellan at au1.ibm.com>
> ---
> src/main.rs | 19 +++++++++++++++----
> 1 file changed, 15 insertions(+), 4 deletions(-)
>
> diff --git a/src/main.rs b/src/main.rs
> index 7a0debaebec4..2e022a3939e9 100644
> --- a/src/main.rs
> +++ b/src/main.rs
> @@ -45,8 +45,10 @@ use env_logger::Builder;
> use log::LevelFilter;
>
> use std::env;
> +use std::error::Error;
> use std::fs;
> use std::path::Path;
> +use std::process;
> use std::string::String;
> use std::sync::Arc;
> use std::thread;
> @@ -282,7 +284,7 @@ fn test_patch(
> }
>
> #[cfg_attr(feature = "cargo-clippy", allow(cyclomatic_complexity))]
> -fn main() {
> +fn run() -> Result<(), Box<Error>> {
> let mut log_builder = Builder::new();
> // By default, log at the "info" level for every module
> log_builder.filter(None, LevelFilter::Info);
> @@ -358,7 +360,7 @@ fn main() {
> test_patch(&settings, &client, &project, &mbox, true);
> }
> }
> - return;
> + return Ok(());
> }
>
> if args.flag_series > 0 {
> @@ -385,7 +387,7 @@ fn main() {
> }
> }
> }
> - return;
> + return Ok(());
> }
>
> // At this point, specifying a project is required
> @@ -396,7 +398,7 @@ fn main() {
> let patch = Path::new(&args.flag_mbox);
> test_patch(&settings, &client, &project, patch, true);
>
> - return;
> + return Ok(());
> }
>
> /*
> @@ -491,4 +493,13 @@ fn main() {
> info!("Finished testing new revisions, sleeping.");
> thread::sleep(Duration::new(settings.patchwork.polling_interval * 60, 0));
> }
> +
> + Ok(())
> +}
> +
> +fn main() {
> + if let Err(e) = run() {
> + println!("Error: {}", e);
> + process::exit(1);
> + }
> }
>
--
Andrew Donnellan OzLabs, ADL Canberra
andrew.donnellan at au1.ibm.com IBM Australia Limited
More information about the snowpatch
mailing list