Skip to main content

asr_features/
cli.rs

1use std::env;
2
3use anyhow::Result;
4use clap::Parser;
5use env_logger::Env;
6
7use crate::feature_cache::{run_feature_cache_cli, Cli};
8use crate::record_cache::{run_record_cache_cli, RecordCacheCli};
9
10pub fn run_cli() -> Result<()> {
11    env_logger::Builder::from_env(Env::default().default_filter_or("info"))
12        .format_timestamp_secs()
13        .try_init()
14        .ok();
15
16    let args: Vec<_> = env::args_os().collect();
17    if args
18        .get(1)
19        .and_then(|value| value.to_str())
20        .is_some_and(|value| value == "record-cache" || value == "build-record-cache")
21    {
22        let mut record_cache_args = Vec::with_capacity(args.len() - 1);
23        record_cache_args.push(args[0].clone());
24        record_cache_args.extend(args.iter().skip(2).cloned());
25        return run_record_cache_cli(RecordCacheCli::parse_from(record_cache_args));
26    }
27
28    run_feature_cache_cli(Cli::parse_from(args))
29}