Skip to main content

cove_cli/commands/
list.rs

1use crate::colors::*;
2use crate::tmux;
3
4pub fn run() -> Result<(), String> {
5    if !tmux::has_session() {
6        println!("{ANSI_OVERLAY}No active cove session.{ANSI_RESET}");
7        return Err(String::new());
8    }
9
10    let windows = tmux::list_windows()?;
11    let home = std::env::var("HOME").unwrap_or_default();
12
13    for w in &windows {
14        let dir = w.pane_path.replace(&home, "~");
15        if w.is_active {
16            println!(
17                "  {ANSI_WHITE}{ANSI_BOLD}❯{ANSI_RESET} {ANSI_WHITE}{ANSI_BOLD}{}{ANSI_RESET}  {ANSI_SUBTEXT}{dir}{ANSI_RESET}",
18                w.name
19            );
20        } else {
21            println!(
22                "    {ANSI_OVERLAY}{}{ANSI_RESET}  {ANSI_SURFACE}{dir}{ANSI_RESET}",
23                w.name
24            );
25        }
26    }
27
28    Ok(())
29}