quickner/
cli.rs

1// quickner
2//
3// NER tool for quick and simple NER annotation
4// Copyright (C) 2023, Omar MHAIMDAT
5//
6// Licensed under Mozilla Public License 2.0
7//
8
9use clap::Parser;
10use log::{error, info};
11use std::path::PathBuf;
12
13use crate::models::Quickner;
14
15#[derive(Parser)]
16#[clap(version = "0.0.1-alpha.1", author = "Omar MHAIMDAT")]
17#[command(author, version, about, long_about = None)]
18pub struct Cli {
19    /// Path to the configuration file
20    /// Default: ./config.toml
21    #[clap(short, long, default_value = "./config.toml")]
22    pub config: PathBuf,
23}
24
25impl Cli {
26    pub fn process(&self) {
27        let config_file = self.config.to_str();
28        let quick = Quickner::new(config_file).process(true);
29        match quick {
30            Ok(_) => info!("Done!"),
31            Err(e) => error!("Error: {}", e),
32        }
33    }
34}