Add BAT_OPTS environment variable

This commit is contained in:
sharkdp 2018-10-11 23:01:19 +02:00 committed by David Peter
parent 866b9e16a8
commit 5bff4548be
2 changed files with 8 additions and 3 deletions

View file

@ -15,7 +15,7 @@ use console::Term;
use ansi_term;
use assets::BAT_THEME_DEFAULT;
use config::get_args_from_config_file;
use config::{get_args_from_config_file, get_args_from_env_var};
use errors::*;
use inputfile::InputFile;
use line_range::LineRange;
@ -104,8 +104,9 @@ impl App {
let mut cli_args = wild::args_os();
// Read arguments from bats config file
let mut args =
get_args_from_config_file().chain_err(|| "Could not parse configuration file")?;
let mut args = get_args_from_env_var()
.unwrap_or_else(|| get_args_from_config_file())
.chain_err(|| "Could not parse configuration file")?;
// Put the zero-th CLI argument (program name) first
args.insert(0, cli_args.next().unwrap());

View file

@ -17,6 +17,10 @@ pub fn get_args_from_config_file() -> Result<Vec<OsString>, shell_words::ParseEr
.unwrap_or(vec![]))
}
pub fn get_args_from_env_var() -> Option<Result<Vec<OsString>, shell_words::ParseError>> {
env::var("BAT_OPTS").ok().map(|s| get_args_from_str(&s))
}
fn get_args_from_str<'a>(content: &'a str) -> Result<Vec<OsString>, shell_words::ParseError> {
let args_per_line = content
.split('\n')