@@ -12,7 +12,7 @@ use console::Term;
1212#[cfg(windows)]
1313use ansi_term;
1414
15−use assets::{BAT_STYLE_DEFAULT, BAT_THEME_DEFAULT};
15+use assets::BAT_THEME_DEFAULT;
1616use errors::*;
1717use line_range::LineRange;
1818use style::{OutputComponent, OutputComponents, OutputWrap};
@@ -430,26 +430,25 @@ impl App {
430430 [OutputComponent::Numbers].iter().cloned().collect()
431431 } else if matches.is_present("plain") {
432432 [OutputComponent::Plain].iter().cloned().collect()
433− } else if matches.is_present("style") {
434− values_t!(matches.values_of("style"), OutputComponent)?
433+ } else {
434+ let env_style_components: Option<Vec<OutputComponent>> =
435+ transpose(env::var("BAT_STYLE").ok().map(|style_str| {
436+ style_str
437+ .split(",")
438+ .map(|x| OutputComponent::from_str(&x))
439+ .collect::<Result<Vec<OutputComponent>>>()
440+ }))?;
441+
442+ values_t!(matches.values_of("style"), OutputComponent)
443+ .ok()
444+ .or(env_style_components)
445+ .unwrap_or(vec![OutputComponent::Full])
435446 .into_iter()
436447 .map(|style| style.components(self.interactive_output))
437448 .fold(HashSet::new(), |mut acc, components| {
438449 acc.extend(components.iter().cloned());
439450 acc
440451 })
441− } else {
442− let style_str = env::var("BAT_STYLE").unwrap_or(String::from(BAT_STYLE_DEFAULT));
443− style_str
444− .split(",")
445− .map(|x| OutputComponent::from_str(&x))
446− .map(|s| match s {
447− Ok(style) => style.components(self.interactive_output),
448− Err(_) => &[],
449− }).fold(HashSet::new(), |mut acc, components| {
450− acc.extend(components.iter().cloned());
451− acc
452− })
453452 },
454453 ))
455454 }