use dirs_2; use std::path::PathBuf; use crate::fail::HResult; pub fn home_path() -> HResult { let home = dirs_2::home_dir()?; Ok(home) } pub fn ranger_path() -> HResult { let mut ranger_path = dirs_2::config_dir()?; ranger_path.push("ranger/"); Ok(ranger_path) } #[cfg(not(target_os = "macos"))] pub fn hunter_path() -> HResult { let mut hunter_path = dirs_2::config_dir()?; hunter_path.push("hunter/"); Ok(hunter_path) } #[cfg(target_os = "macos")] pub fn hunter_path() -> HResult { let mut hunter_path = home_path()?; hunter_path.push(".config/"); hunter_path.push("hunter/"); Ok(hunter_path) } pub fn config_path() -> HResult { let mut config_path = hunter_path()?; config_path.push("config"); Ok(config_path) } pub fn bindings_path() -> HResult { let mut config_path = hunter_path()?; config_path.push("keys"); Ok(config_path) } pub fn bookmark_path() -> HResult { let mut bookmark_path = hunter_path()?; bookmark_path.push("bookmarks"); Ok(bookmark_path) } pub fn tagfile_path() -> HResult { let mut tagfile_path = hunter_path()?; tagfile_path.push("tags"); Ok(tagfile_path) } pub fn history_path() -> HResult { let mut history_path = hunter_path()?; history_path.push("history"); Ok(history_path) } pub fn actions_path() -> HResult { let mut actions_path = hunter_path()?; actions_path.push("actions"); Ok(actions_path) } pub fn previewers_path() -> HResult { let mut previewers_path = hunter_path()?; previewers_path.push("previewers"); Ok(previewers_path) }