From 41e060680ea153fa8f245efc53f870bbb80faf89 Mon Sep 17 00:00:00 2001 From: Ryan Geary Date: Tue, 17 Mar 2020 13:41:44 -0400 Subject: Handle failure to open input file --- src/main.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/main.rs b/src/main.rs index dbefafa..9bea756 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,6 @@ use std::fs::File; use std::io::{self, Read, Write}; +use std::process; use structopt::StructOpt; #[macro_use] @@ -17,7 +18,14 @@ fn main() { let config = Config::new(opt); let read = match &config.opt.input { - Some(f) => Box::new(File::open(f).expect("Could not open file")) as Box, + Some(f) => match File::open(f) { + Ok(fh) => Box::new(fh) as Box, + Err(e) => { + eprintln!("Failed to open file: {}", e); + // exit code of 3 means failure to open input file + process::exit(3); + } + }, None => Box::new(io::stdin()) as Box, }; -- cgit v1.2.3