git_stk/commands/
config.rs1use anyhow::Result;
2
3use crate::commands::Run;
4use crate::git;
5use crate::settings::SETTINGS;
6use crate::style;
7
8#[derive(Debug, clap::Args)]
10pub struct Config {}
11
12impl Run for Config {
13 fn run(self) -> Result<()> {
14 print_config()
15 }
16}
17
18pub fn print_config() -> Result<()> {
21 for (key, default) in SETTINGS {
22 match git::config_get(key)? {
23 Some(value) => println!("{key} = {value}"),
24 None => anstream::println!("{key} {}", style::dim(&format!("(default: {default})"))),
25 }
26 }
27
28 let metadata = git::config_get_regexp(r"^branch\..*\.stk(parent|base)$")?;
29 if metadata.is_empty() {
30 println!();
31 anstream::println!("{}", style::dim("no branch metadata (no stacked branches)"));
32 return Ok(());
33 }
34
35 println!();
36 println!("branch metadata:");
37 for (key, value) in metadata {
38 println!(" {key} = {value}");
39 }
40 Ok(())
41}