ci: docker_tag=ext - Fix config file reading logic to properly read from file when env vars are missing
This commit is contained in:
parent
0a02c708fc
commit
0180d32472
@ -46,28 +46,32 @@ impl Config {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fallback to file if environment variables are not set
|
// Read from file to complete missing environment variables
|
||||||
if file_content.is_empty() {
|
if let Ok(file) = File::open(filename) {
|
||||||
if let Ok(file) = File::open(filename) {
|
let reader = io::BufReader::new(file);
|
||||||
let reader = io::BufReader::new(file);
|
|
||||||
|
|
||||||
// Read the file line by line
|
// Read the file line by line
|
||||||
for line in reader.lines() {
|
for line in reader.lines() {
|
||||||
if let Ok(l) = line {
|
if let Ok(l) = line {
|
||||||
// Ignore comments and empty lines
|
// Ignore comments and empty lines
|
||||||
if l.starts_with('#') || l.trim().is_empty() {
|
if l.starts_with('#') || l.trim().is_empty() {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Split the line into key and value
|
// Split the line into key and value
|
||||||
if let Some((k, v)) = l.split_once('=') {
|
if let Some((k, v)) = l.split_once('=') {
|
||||||
file_content.insert(k.to_owned(), v.trim_matches('\"').to_owned());
|
let key = k.trim().to_owned();
|
||||||
|
let value = v.trim().trim_matches('\"').to_owned();
|
||||||
|
|
||||||
|
// Only insert if not already set by environment variables
|
||||||
|
if !file_content.contains_key(&key) {
|
||||||
|
file_content.insert(key, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
return Err(anyhow::Error::msg("Failed to find conf file and no environment variables set"));
|
|
||||||
}
|
}
|
||||||
|
} else if file_content.is_empty() {
|
||||||
|
return Err(anyhow::Error::msg("Failed to find conf file and no environment variables set"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now set the Config
|
// Now set the Config
|
||||||
|
Loading…
x
Reference in New Issue
Block a user