prehnite_core/util/
app_global.rs1#![doc = "アプリのグローバルな定数等"]
2use crate::env::ENV_KEY_GLOBAL_DIR_PATH;
3use crate::util::alert::fatal_init_db_error;
4use std::path::PathBuf;
5use tracing::error;
6use tracing_unwrap::ResultExt;
7
8const DEFAULT_APP_DIR_NAME: &str = ".jp.prehnite.prehnite";
9
10#[tracing::instrument]
11pub fn global_dir() -> PathBuf {
13 std::env::var_os(ENV_KEY_GLOBAL_DIR_PATH)
14 .map(|v| v.into())
15 .unwrap_or_else(|| {
16 if cfg!(debug_assertions) {
17 ".".into()
18 } else {
19 let mut path = std::env::home_dir().unwrap_or_else(|| {
20 error!("Failed to get home_dir. The home directory may not be set.");
21 fatal_init_db_error().show().unwrap_or_log();
22 panic!();
23 });
24 path.push(DEFAULT_APP_DIR_NAME);
25 path
26 }
27 })
28}