53 lines
1.4 KiB
Rust
53 lines
1.4 KiB
Rust
extern crate clap;
|
|
extern crate reqwest;
|
|
extern crate serde;
|
|
extern crate simple_home_dir;
|
|
|
|
use cl_cli::cli::Cli;
|
|
use cl_cli::cli::Commands::{Planning, Test};
|
|
use cl_cli::cli::Planning::I2work;
|
|
use cl_cli::error::GeneralError;
|
|
use clap::Parser;
|
|
use std::path::PathBuf;
|
|
use std::process::exit;
|
|
|
|
#[tokio::main]
|
|
async fn main() {
|
|
let cli = Cli::parse();
|
|
let mut default_config_path = PathBuf::new();
|
|
default_config_path.push(simple_home_dir::home_dir().unwrap());
|
|
default_config_path.push(".config/cl-cli/config.toml");
|
|
|
|
let config_path = match cli.config.as_deref() {
|
|
Some(p) => p,
|
|
None => &default_config_path,
|
|
};
|
|
|
|
let config = match cl_cli::config::build_config(config_path) {
|
|
Ok(c) => c,
|
|
Err(e) => {
|
|
let general_error: GeneralError = e.into();
|
|
println!("{}", general_error.description);
|
|
exit(1);
|
|
}
|
|
};
|
|
|
|
let result = match cli.command {
|
|
Some(Planning(I2work(args))) => {
|
|
cl_cli::planning::issue2work::issue2work_cli(config, &args).await
|
|
}
|
|
Some(Test) => cl_cli::debug::debug(config).await,
|
|
None => Err(GeneralError {
|
|
description: "No command launched".to_string(),
|
|
}),
|
|
};
|
|
|
|
match result {
|
|
Ok(()) => exit(0),
|
|
Err(e) => {
|
|
println!("Error: {}", e.description);
|
|
exit(1)
|
|
}
|
|
};
|
|
}
|