pub mod addressbook;
pub mod archive;
pub mod entry;
pub(crate) mod vault_ethereum;
pub(crate) mod vault_bitcoin;
pub mod vault;
pub mod global_key;
pub mod admin;
pub mod snapshot;
pub mod icons;
mod files;
pub mod watch;
use std::{
env,
path::{Path, PathBuf},
};
#[derive(Debug, Clone)]
pub struct Storages {
base_dir: PathBuf,
}
#[cfg(all(
unix,
not(target_os = "macos"),
not(target_os = "ios"),
not(target_os = "android")
))]
pub fn default_path() -> PathBuf {
let mut config_dir = env::home_dir().expect("Expect path to home dir");
config_dir.push(".emerald");
config_dir.push("vault");
config_dir
}
#[cfg(target_os = "macos")]
pub fn default_path() -> PathBuf {
let mut config_dir = env::home_dir().expect("Expect path to home dir");
config_dir.push("Library");
config_dir.push("Emerald");
config_dir.push("vault");
config_dir
}
#[cfg(target_os = "windows")]
pub fn default_path() -> PathBuf {
let app_data_var = env::var("APPDATA").expect("Expect 'APPDATA' environment variable");
let mut config_dir = PathBuf::from(app_data_var);
config_dir.push(".emerald");
config_dir.push("vault");
config_dir
}
pub fn build_path(base_path: &Path, chain: &str, folder: &str) -> PathBuf {
let mut path = PathBuf::from(base_path);
path.push(chain);
path.push(folder);
path
}