From a5dfd2627853bd67e9d17ef870fc84be312b1397 Mon Sep 17 00:00:00 2001 From: jvech Date: Tue, 23 Apr 2024 07:52:28 -0500 Subject: add: first commit done --- src/main.rs | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 src/main.rs (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..8ef62b3 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,48 @@ +use xdg; +use rusqlite::Result; + +mod database; +mod cli; + +use cli::{Cli, Commands}; +use crate::database::Database; + +fn main() -> Result<()> { + let cli = Cli::new(); + match cli.action { + Commands::Init => { + if let Some(datapath) = cli.database_path { + Database::init_database(&datapath)?; + } else { + let datapath = xdg::BaseDirectories::with_prefix("debt") + .expect("xdg file setup failed") + .place_data_file("cache.db") + .expect("xdg directory creaton failed"); + Database::init_database(&datapath)?; + } + }, + Commands::Register {person, amount, note, payment} => { + let register = Database::new(person, amount, note, !payment); + if let Some(datapath) = cli.database_path { + register.add_register(&datapath)?; + } else { + panic!("database file not found"); + } + }, + Commands::View {history, filter, total} => { + println!("{}", filter.unwrap_or(String::from("None"))); + println!("{}", history); + println!("{}", total); + }, + + Commands::Add {name} => { + let register = Database::new(name, 0, None, false); + if let Some(datapath) = cli.database_path { + register.add_agent(&datapath)?; + } else { + panic!("database file not found"); + } + } + }; + Ok(()) +} -- cgit v1.2.3-70-g09d2