binocular-cli 0.2.0

Not exactly a telescope, but it's useful sometimes. TUI to search/navigate through files and workspaces.
Documentation
use binocular::cli;
use binocular::runtime::interactive;
use binocular::runtime::{headless, startup};

use clap::Parser;
use std::io::{self, IsTerminal};

fn main() -> anyhow::Result<()> {
    let resolved = cli::resolve_cli(cli::Cli::parse(), !io::stdin().is_terminal())?;
    let run_config = resolved.run;
    let search_config = resolved.search;
    let app_config = binocular::config::load_app_config();
    let persisted_layout = binocular::config::load_layout();
    let log_max_entries = app_config.log.max_entries;

    if run_config.headless {
        let stdin_items = startup::prepare_headless_input_with_run_config(&run_config)?;
        return headless::run_with_configs(run_config, search_config, stdin_items);
    }

    interactive::run_interactive_with_configs(
        run_config,
        search_config,
        app_config,
        persisted_layout,
        log_max_entries,
    )
}