semantic-search-cli 0.1.7

🔎 Semantic search cli.
Documentation
#![warn(clippy::all, clippy::nursery, clippy::pedantic, clippy::cargo)]

use anyhow::{Context, Result};
use env_logger::Env;
use log::debug;
use semantic_search_cli::{Args, execute, parse_config};
use std::io::Write;
use std::path::Path;

#[tokio::main]
async fn main() -> Result<()> {
    env_logger::Builder::from_env(Env::default().default_filter_or("info"))
        .format(|buf, record| {
            let level = record.level();
            let style = buf.default_level_style(level);
            writeln!(buf, "[{style}{level}{style:#}] {}", record.args())
        })
        .init();

    let args: Args = argh::from_env();
    debug!("Args: {:?}", args);
    debug!("Working directory: {:?}", std::env::current_dir()?);

    let config = parse_config(Path::new(".sense/config.toml"))
        .with_context(|| "Failed to parse config file, consider creating one")?;

    Box::pin(execute(args.command, config)).await?;

    Ok(())
}