muxi/commands/config/
list.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
use color_eyre::Result;
use owo_colors::OwoColorize;

use crate::muxi::{self, path};

pub fn list() -> Result<()> {
    let path = path::muxi_dir();
    let settings = muxi::parse_settings(&path)?;

    // Settings
    println!(
        "{} {}",
        "SETTINGS:".yellow(),
        path::settings_file().to_string_lossy().dimmed()
    );
    println!("{settings}");

    // Bindings
    if !settings.bindings.is_empty() {
        println!("{}", "BINDINGS:".yellow());

        let max_width_key = settings
            .bindings
            .keys()
            .map(|key| key.as_ref().len())
            .max()
            .unwrap();

        for (key, binding) in settings.bindings {
            print!("    {:<max_width_key$}  {}", key.green(), binding.command);

            if binding.popup.is_some() {
                print!("{}", " (popup)".yellow());
            }

            println!();
        }
    }

    Ok(())
}