signstar_config/
config.rs1use nethsm_config::{ConfigSettings, HermeticParallelConfig};
4use signstar_common::config::{get_config_file, get_config_file_paths};
5
6#[derive(Debug, thiserror::Error)]
8pub enum Error {
9 #[error("No configuration file found in {}.", get_config_file_paths().iter().map(|path| path.display().to_string()).collect::<Vec<String>>().join(", "))]
11 ConfigMissing,
12
13 #[error("NetHSM config error:\n{0}")]
15 NetHsmConfig(#[from] nethsm_config::Error),
16}
17
18pub fn load_config() -> Result<HermeticParallelConfig, crate::Error> {
28 let Some(config_path) = get_config_file() else {
29 return Err(crate::Error::Config(Error::ConfigMissing));
30 };
31
32 HermeticParallelConfig::new_from_file(
33 ConfigSettings::new(
34 "signstar".to_string(),
35 nethsm_config::ConfigInteractivity::NonInteractive,
36 None,
37 ),
38 Some(&config_path),
39 )
40 .map_err(|source| crate::Error::Config(Error::NetHsmConfig(source)))
41}