From 75816058cf9601b5542e00fce815cd293d19aac0 Mon Sep 17 00:00:00 2001 From: Daniel Flanagan Date: Thu, 18 Apr 2024 21:06:53 -0500 Subject: [PATCH] I need a debugger --- src/cli/config.rs | 8 ++++++-- src/config.rs | 28 +++++++++++++++++++++++++--- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/src/cli/config.rs b/src/cli/config.rs index c0a8f80..8e7151a 100644 --- a/src/cli/config.rs +++ b/src/cli/config.rs @@ -49,13 +49,17 @@ impl Command { let gitlab_url = "https://gitlab.com"; let jira_url = "https://jira.com"; - let config_builder = Config::default_builder()? + let config_builder = Config::builder(&tasks.config_file_path)? .set_override("gitlab.url", gitlab_url)? .set_override("jira.url", jira_url)? .set_override("secrets.gitlab_token", gitlab_url)? .set_override("secrets.jira_token", jira_url)?; - let config_result = config_builder.build()?.try_deserialize(); + dbg!(&config_builder); + let built = config_builder.build()?; + dbg!(&built); + + let config_result = built.try_deserialize(); dbg!(&config_result); if let Err(err) = &config_result { match err { diff --git a/src/config.rs b/src/config.rs index d722952..48eb9d6 100644 --- a/src/config.rs +++ b/src/config.rs @@ -66,8 +66,12 @@ where { Ok(CConfig::builder() .set_default("version", CURRENT_VERSION)? .set_default("secrets", HashMap::::new())? + .set_default("secrets.gitlab_token", "")? + .set_default("secrets.jira_token", "")? .set_default("jira", HashMap::::new())? - .set_default("gitlab", HashMap::::new())?) + .set_default("gitlab", HashMap::::new())? + .set_default("jira.url", "")? + .set_default("gitlab.url", "")?) } #[allow(dead_code)] @@ -82,8 +86,26 @@ mod tests { use crate::config::*; #[test] - fn defaults_deserialize_to_valid_config() -> Result<()> { - println!("Defaults: {:?}", Config::defaults()?); + fn default_config_toml_deserialize_to_valid_config() -> Result<()> { + let tmp = std::env::temp_dir() + .join("taskr_defaults.default_config_toml_deserialize_to_valid_config.toml"); + + std::fs::write( + &tmp, + r#"[gitlab] + url = "https://gitlab.com" + + [jira] + url = "https://jira.com" + + [secrets] + gitlab_token = "asdf" + jira_token = "1337" + "#, + )?; + + println!("Defaults: {:?}", Config::load(&tmp)?); + let _ = std::fs::remove_file(tmp); Ok(()) } }