From 0c2e1910bd05ac7c783f0c815ca44539d9ff557e Mon Sep 17 00:00:00 2001 From: syn Date: Tue, 18 Feb 2020 00:54:44 +0300 Subject: Abort if no config found --- src/conf.rs | 19 ++----------------- src/main.rs | 9 ++++++++- 2 files changed, 10 insertions(+), 18 deletions(-) diff --git a/src/conf.rs b/src/conf.rs index 8aeb8e3..26a4832 100644 --- a/src/conf.rs +++ b/src/conf.rs @@ -1,7 +1,6 @@ use serde_derive::Deserialize; use std::path::{ PathBuf, Path }; use toml::de; -use log::{ error }; type Error = std::io::Error; use std::io::ErrorKind; @@ -9,7 +8,7 @@ use std::io::ErrorKind; use crate::backends::{ Backend, PythonBackend, ClangBackend }; -#[derive(Debug, Deserialize, Default)] +#[derive(Debug, Deserialize)] pub struct Conf { #[serde(skip)] path: Option, @@ -43,21 +42,7 @@ impl Conf { } -pub fn get_conf() -> Conf { - match get_conf_maybe() { - Ok(c) => c, - Err(e) => { - match e.kind() { - ErrorKind::InvalidData => error!("parse: {}", e), - _ => error!("{}", e) - }; - Default::default() - } - } -} - - -pub fn get_conf_maybe() -> Result { +pub fn get_conf() -> Result { let mut current = std::env::current_dir()?; let path = loop { let candidate = current.join(".evr"); diff --git a/src/main.rs b/src/main.rs index e4c79ec..b25443d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -41,7 +41,14 @@ fn main() { let src_path: std::path::PathBuf = matches.value_of("src") .expect("src is required") .into(); - let config = conf::get_conf(); + + let config = match conf::get_conf() { + Ok(c) => c, + Err(err) => { + error!("could not load config: {}", err); + std::process::exit(64); // EX_USAGE (BSD sysexits(3)) + } + }; if src_path.exists() { if let Some(backend) = config.get_backend(&src_path) { -- cgit v1.2.1-18-gbd029