blob: c85bf2f0e1bd8cdf5857dbbc500fdf91b4a1f30e (
plain)
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
|
use clap::Parser;
use figment::{
providers::{Env, Format, Toml},
Figment,
};
use std::error::Error;
use tmuxr::{logging, Cli, Config, Finder, Paths, Result};
use tracing::info;
fn main() -> Result<()> {
let cli = Cli::parse();
let config = Figment::from(Config::default())
.merge(cli)
.merge(Toml::file("tmuxr.toml"))
.merge(Env::prefixed("TMUXR_"))
.extract()
.map_err(eprintln)?;
logging::init_from_provider(&config).map_err(eprintln)?;
run(&config).map_err(eprintln)
}
fn eprintln<E: Error>(err: E) -> E {
eprintln!("{}", err);
err
}
#[tracing::instrument()]
pub fn run(config: &Config) -> Result<()> {
let paths = Paths::from_provider(config)?;
let selected = Finder::from_provider(config)?.spawn()?.find(paths)?;
info!("{:?}", selected);
Ok(())
}
|