From e9247e15e7e26c198725989435e9703e3870878e Mon Sep 17 00:00:00 2001 From: michal Date: Tue, 18 Jan 2022 02:15:05 +0000 Subject: [PATCH] database template code + first run dir creation --- src/database/add.rs | 5 +++++ src/database/mod.rs | 7 +++++++ src/internal/initialise.rs | 36 ++++++++++++++++++++++++++++++++++++ src/internal/mod.rs | 5 +++++ src/main.rs | 5 ++++- 5 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 src/database/add.rs create mode 100644 src/database/mod.rs create mode 100644 src/internal/initialise.rs diff --git a/src/database/add.rs b/src/database/add.rs new file mode 100644 index 0000000..d813198 --- /dev/null +++ b/src/database/add.rs @@ -0,0 +1,5 @@ +use crate::Options; + +pub fn add(a: String, options: Options) { + // TODO: the actual database code lmao +} diff --git a/src/database/mod.rs b/src/database/mod.rs new file mode 100644 index 0000000..47c984b --- /dev/null +++ b/src/database/mod.rs @@ -0,0 +1,7 @@ +use crate::Options; + +mod add; + +pub fn add(a: String, options: Options) { + add::add(a, options); +} diff --git a/src/internal/initialise.rs b/src/internal/initialise.rs new file mode 100644 index 0000000..3620092 --- /dev/null +++ b/src/internal/initialise.rs @@ -0,0 +1,36 @@ +use crate::Options; +use std::env; +use std::path::Path; + +pub fn init(options: Options) { + let verbosity = options.verbosity; + let homedir = env::var("HOME").unwrap(); + + if !Path::new(&format!("{}/.local/share/ame", homedir)).exists() { + let r = std::fs::create_dir_all(format!("{}/.local/share/ame", homedir)); + match r { + Ok(_) => { + if verbosity >= 1 { + eprintln!("Created path: {}/.local/share/ame", homedir); + } + } + Err(e) => { + panic!("Couldn't create path: {}/.local/share/ame: {}", homedir, e); + } + } + } + + if !Path::new(&format!("{}/.cache/ame/", homedir)).exists() { + let r = std::fs::create_dir_all(format!("{}/.cache/ame", homedir)); + match r { + Ok(_) => { + if verbosity >= 1 { + eprintln!("Created path: {}/.cache/ame", homedir); + } + } + Err(e) => { + panic!("Couldn't create path: {}/.cache/ame: {}", homedir, e); + } + } + } +} diff --git a/src/internal/mod.rs b/src/internal/mod.rs index 641289b..ef0fcbd 100644 --- a/src/internal/mod.rs +++ b/src/internal/mod.rs @@ -1,6 +1,7 @@ use crate::Options; mod clean; +mod initialise; pub mod rpc; mod sort; pub mod structs; @@ -12,3 +13,7 @@ pub fn sort(a: &[String], options: Options) -> structs::Sorted { pub fn clean(a: &[String], options: Options) -> Vec { clean::clean(a, options) } + +pub fn init(options: Options) { + initialise::init(options); +} diff --git a/src/main.rs b/src/main.rs index 41484dd..936496d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,8 @@ +mod database; mod internal; mod operations; -use crate::internal::{sort, structs::Options}; +use crate::internal::{init, sort, structs::Options}; use clap::{App, AppSettings, Arg, ArgSettings, SubCommand}; use std::process::exit; @@ -86,6 +87,8 @@ fn main() { noconfirm, }; + init(options); + let packages: Vec = matches .subcommand() .1