[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