Make .env optional

This commit is contained in:
2026-10-06 08:24:08 +03:00
parent 58ca8ee1da
commit 0d1e67edd2
+8 -2
View File
@@ -16,12 +16,18 @@ pub enum ConfigError {
#[error("Parse error {0}")] #[error("Parse error {0}")]
InvalidPort(#[from] ParseIntError), InvalidPort(#[from] ParseIntError),
#[error("Unknown error: #{0}")] #[error("Unknown error: #{0}")]
Unknown(anyhow::Error), Unknown(#[from] anyhow::Error),
} }
impl Config { impl Config {
pub fn new() -> Result<Self, ConfigError> { pub fn new() -> Result<Self, ConfigError> {
dotenvy::dotenv().map_err(|err| ConfigError::Unknown(err.into()))?; // dotenvy::dotenv().map_err(|err| ConfigError::Unknown(err.into()))?;
match dotenvy::dotenv() {
Ok(_) => Ok(()),
Err(err) => {
if err.not_found() { Ok(()) } else { Err(ConfigError::Unknown(err.into())) }
}
}?; //.map_err(|err| ConfigError::Unknown(err.into()))?;
let server_secret = env::var("SERVER_SECRET").map(SecretString::from).map_err(|_| ConfigError::MissingServerSecret)?; let server_secret = env::var("SERVER_SECRET").map(SecretString::from).map_err(|_| ConfigError::MissingServerSecret)?;
let state_dir = env::var("STATE_DIR").map_or_else(|_| PathBuf::from("/tmp/"), PathBuf::from); let state_dir = env::var("STATE_DIR").map_or_else(|_| PathBuf::from("/tmp/"), PathBuf::from);
let port = match env::var("PORT") { let port = match env::var("PORT") {