use crate::{ASCII_NAME, AUTHORS, PKG_NAME};
use structopt::StructOpt;
#[derive(Debug, Clone, StructOpt)]
#[structopt(name = format!("{}\nAuthor: {}\nVersion: {}", ASCII_NAME, AUTHORS, PKG_NAME))]
pub struct Cli {
pub sql: Option<String>,
#[structopt(long)]
pub dev: bool,
#[structopt(short = "f", long)]
pub file: Option<String>,
#[structopt(short = "H", long)]
pub host: Option<String>,
#[structopt(short = "P", long)]
pub port: Option<String>,
#[structopt(short, long)]
pub user: Option<String>,
#[structopt(short, long)]
pub password: Option<String>,
#[structopt(short, long)]
pub endpoint: Option<String>,
#[structopt(short, long)]
pub timezone: Option<String>,
#[structopt(short, long)]
pub debug: bool,
#[structopt(subcommand)]
pub sub_cmd: Option<SubCmd>,
}
impl Cli {
pub fn new() -> Self {
Cli::from_args()
}
}
#[derive(Debug, Clone, StructOpt)]
#[structopt(name = format!("{}\nAuthor: {}\nVersion: {}", ASCII_NAME, AUTHORS, PKG_NAME))]
pub enum SubCmd {
File { file_path: Option<String> },
Csv {
#[structopt(short, long)]
import: Option<String>,
#[structopt(short, long)]
export: Option<String>,
},
Load,
Usage,
Update,
Version,
}