Skip to content

Commit e5e3e5f

Browse files
committed
Fix -C key=val behaviour for values that are not seralised as "strings"
1 parent 1c545c3 commit e5e3e5f

File tree

3 files changed

+56
-4
lines changed

3 files changed

+56
-4
lines changed

Cargo.lock

Lines changed: 49 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

orchestrator/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ toml = { workspace = true }
1313
walkdir = { workspace = true }
1414
log = { workspace = true }
1515
serde = { workspace = true }
16-
figment = { workspace = true, features = ["toml"] }
16+
figment = { workspace = true, features = ["toml", "env"] }
1717
anyhow = { workspace = true }
1818
anstyle = { workspace = true }
1919

orchestrator/src/command_line.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use clap::{
99

1010
use figment::{
1111
providers::{Format, Serialized, Toml},
12-
value::{Dict, Map},
12+
value::{Dict, Map, Value},
1313
Figment, Metadata, Profile, Provider,
1414
};
1515
use log::{debug, warn, LevelFilter};
@@ -217,8 +217,11 @@ impl PasFmtConfiguration {
217217
warn!("Ingoring unknown configuration key '{key}'");
218218
config
219219
} else {
220-
config
221-
.merge(Serialized::default(key, val).erase_with_name("command-line overrides"))
220+
let value: Result<_, std::convert::Infallible> = Value::from_str(val);
221+
let value = value.unwrap(); // unwrapping is fine because the Err is Infallible
222+
config.merge(
223+
Serialized::default(key, value).erase_with_name("command-line overrides"),
224+
)
222225
}
223226
});
224227

0 commit comments

Comments
 (0)