From 9f66dc38497c93fdf6e402ba75d5dc4de1bb8051 Mon Sep 17 00:00:00 2001 From: Dan Davison Date: Fri, 19 Jan 2024 09:21:23 -0500 Subject: --show-themes exit with error when no themes (#1611) Fixes #587 --- src/subcommands/show_themes.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/subcommands/show_themes.rs b/src/subcommands/show_themes.rs index 76590761..52c92386 100644 --- a/src/subcommands/show_themes.rs +++ b/src/subcommands/show_themes.rs @@ -15,6 +15,15 @@ pub fn show_themes(dark: bool, light: bool, computed_theme_is_light: bool) -> st use super::sample_diff::DIFF; + let env = DeltaEnv::default(); + let themes = get_themes(git_config::GitConfig::try_create(&env)); + if themes.is_empty() { + return Err(std::io::Error::new( + ErrorKind::NotFound, + "No themes found. Please see https://dandavison.github.io/delta/custom-themes.html.", + )); + } + let mut input = DIFF.to_vec(); if !io::stdin().is_terminal() { @@ -25,7 +34,6 @@ pub fn show_themes(dark: bool, light: bool, computed_theme_is_light: bool) -> st } }; - let env = DeltaEnv::default(); let git_config = git_config::GitConfig::try_create(&env); let opt = cli::Opt::from_iter_and_git_config( env.clone(), @@ -37,7 +45,7 @@ pub fn show_themes(dark: bool, light: bool, computed_theme_is_light: bool) -> st let title_style = ansi_term::Style::new().bold(); let writer = output_type.handle().unwrap(); - for theme in &get_themes(git_config::GitConfig::try_create(&env)) { + for theme in &themes { let git_config = git_config::GitConfig::try_create(&env); let opt = cli::Opt::from_iter_and_git_config( env.clone(), -- cgit v1.2.3