tinymark/src/main.rs

43 lines
1.2 KiB
Rust

pub mod structures;
mod tests;
mod database;
mod commands;
use crate::structures::{Commands, Cli, Config};
use clap::Parser;
use paris::*;
use std::path::PathBuf;
use std::env;
fn main() {
let cfg: Config = confy::load("tinymark").unwrap();
confy::store("tinymark", &cfg).unwrap();
/*
println!("The configuration is:");
println!("{:#?}", cfg);*/
if cfg.tui {
warn!("TUI is not implemented yet!");
std::process::exit(exitcode::DATAERR);
}
let args = Cli::parse();
let json: bool;
if cfg.json {
json = true;
} else {
json = args.json;
}
match &args.command {
Commands::Add { url, name, description, tags } => commands::add(url, name, description, tags, json, cfg.storage_location),
Commands::Edit { url } => commands::edit(json, url, cfg.storage_location),
Commands::Delete { url } => database::remove_entry(url, json, cfg.storage_location),
Commands::List { } => commands::list(json, cfg.storage_location),
Commands::Export { file } => commands::export(file.to_path_buf(), json, cfg.storage_location),
Commands::Import { file } => commands::import(file.to_path_buf(), json, cfg.storage_location),
}
}