From patchwork Thu Dec 13 02:43:51 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Ellerman X-Patchwork-Id: 1012480 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [203.11.71.2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 43FdQW1FYlz9s8r for ; Thu, 13 Dec 2018 13:48:03 +1100 (AEDT) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=ellerman.id.au Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 43FdQV5jVWzDqHr for ; Thu, 13 Dec 2018 13:48:02 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; dmarc=none (p=none dis=none) header.from=ellerman.id.au X-Original-To: snowpatch@lists.ozlabs.org Delivered-To: snowpatch@lists.ozlabs.org Received: from ozlabs.org (bilbo.ozlabs.org [IPv6:2401:3900:2:1::2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 43FdKp58CGzDr3R for ; Thu, 13 Dec 2018 13:43:58 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; dmarc=none (p=none dis=none) header.from=ellerman.id.au Received: by ozlabs.org (Postfix, from userid 1034) id 43FdKp4DCzz9s8r; Thu, 13 Dec 2018 13:43:58 +1100 (AEDT) From: Michael Ellerman To: snowpatch@lists.ozlabs.org Date: Thu, 13 Dec 2018 13:43:51 +1100 Message-Id: <20181213024353.19725-1-mpe@ellerman.id.au> X-Mailer: git-send-email 2.17.2 X-Mailman-Approved-At: Thu, 13 Dec 2018 13:48:00 +1100 Subject: [snowpatch] [PATCH 1/3] Rework main() to return a Result() X-BeenThere: snowpatch@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Continuous Integration for patch-based workflows List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: snowpatch-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "snowpatch" 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. Reviewed-by: Andrew Donnellan --- 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> { 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); + } }