Fix env var lookup in config module - fixes nested local streaming

This commit is contained in:
Marcin Kulik
2025-08-30 21:49:41 +02:00
parent 290cf018f5
commit 57635fa257

View File

@@ -4,7 +4,7 @@ use std::io::ErrorKind;
use std::path::{Path, PathBuf}; use std::path::{Path, PathBuf};
use anyhow::{anyhow, bail, Result}; use anyhow::{anyhow, bail, Result};
use config::{self, Environment, File}; use config::{self, File};
use reqwest::Url; use reqwest::Url;
use serde::Deserialize; use serde::Deserialize;
use uuid::Uuid; use uuid::Uuid;
@@ -69,18 +69,19 @@ impl Config {
.set_default("notifications.enabled", true)? .set_default("notifications.enabled", true)?
.add_source(File::with_name("/etc/asciinema/config.toml").required(false)) .add_source(File::with_name("/etc/asciinema/config.toml").required(false))
.add_source(File::with_name(&user_defaults_path()?.to_string_lossy()).required(false)) .add_source(File::with_name(&user_defaults_path()?.to_string_lossy()).required(false))
.add_source(File::with_name(&user_config_path()?.to_string_lossy()).required(false)) .add_source(File::with_name(&user_config_path()?.to_string_lossy()).required(false));
.add_source(Environment::with_prefix("asciinema").separator("_"));
if let Some(url) = server_url { // legacy env var
if let Ok(url) = env::var("ASCIINEMA_API_URL") {
config = config.set_override("server.url", Some(url))?; config = config.set_override("server.url", Some(url))?;
} }
if let (Err(_), Ok(url)) = ( if let Ok(url) = env::var("ASCIINEMA_SERVER_URL") {
env::var("ASCIINEMA_SERVER_URL"), config = config.set_override("server.url", Some(url))?;
env::var("ASCIINEMA_API_URL"), }
) {
env::set_var("ASCIINEMA_SERVER_URL", url); if let Some(url) = server_url {
config = config.set_override("server.url", Some(url))?;
} }
Ok(config.build()?.try_deserialize()?) Ok(config.build()?.try_deserialize()?)