diff options
author | metamuffin <metamuffin@disroot.org> | 2024-04-17 02:08:37 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-04-17 02:08:37 +0200 |
commit | 72da791e3cd46cfb03be377d4835af17d0191fd6 (patch) | |
tree | 94827eb69513dafc3c5be80784a9dee9c4b254c5 /base/src | |
parent | 39c11ddc30fcf8fbfc766e0065cdde84d5264ac6 (diff) | |
download | jellything-72da791e3cd46cfb03be377d4835af17d0191fd6.tar jellything-72da791e3cd46cfb03be377d4835af17d0191fd6.tar.bz2 jellything-72da791e3cd46cfb03be377d4835af17d0191fd6.tar.zst |
make cargo test work right away
Diffstat (limited to 'base/src')
-rw-r--r-- | base/src/lib.rs | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/base/src/lib.rs b/base/src/lib.rs index b90934e..385ad7a 100644 --- a/base/src/lib.rs +++ b/base/src/lib.rs @@ -11,11 +11,25 @@ pub mod federation; pub mod permission; use jellycommon::config::{GlobalConfig, SecretsConfig}; -use std::{fs::File, sync::LazyLock}; +use std::sync::{ + atomic::{AtomicBool, Ordering}, + LazyLock, +}; -pub static CONF: LazyLock<GlobalConfig> = LazyLock::new(|| { +pub static CONF: LazyLock<GlobalConfig> = LazyLock::new(load_config); +pub static SECRETS: LazyLock<SecretsConfig> = LazyLock::new(load_secrets); +pub static USE_TEST: AtomicBool = AtomicBool::new(false); + +pub fn use_test_config() { + USE_TEST.store(true, Ordering::Relaxed) +} + +pub fn load_config() -> GlobalConfig { + if USE_TEST.load(Ordering::Relaxed) { + return GlobalConfig::default(); + } serde_yaml::from_reader( - File::open(std::env::var("JELLYTHING_CONFIG").unwrap_or_else(|_| { + std::fs::File::open(std::env::var("JELLYTHING_CONFIG").unwrap_or_else(|_| { if std::env::args() .nth(0) .unwrap_or_default() @@ -31,8 +45,11 @@ pub static CONF: LazyLock<GlobalConfig> = LazyLock::new(|| { .expect("config cannot be read"), ) .expect("config invalid") -}); -pub static SECRETS: LazyLock<SecretsConfig> = LazyLock::new(|| { - serde_yaml::from_reader(File::open(&CONF.secrets_path).expect("secrets file missing")) +} +fn load_secrets() -> SecretsConfig { + if USE_TEST.load(Ordering::Relaxed) { + return SecretsConfig::default(); + } + serde_yaml::from_reader(std::fs::File::open(&CONF.secrets_path).expect("secrets file missing")) .expect("secrets config invalid") -}); +} |