Fix env vars precedence
2 unresolved threads
2 unresolved threads
The clap module we use for parsing command-line arguments allows
specifying default_value
. Unfortunately, it makes impossible to tell
if an argument was actually passed. So it always overrides env var with
a default value, which is undesirable.
Merge request reports
Activity
8 11 - data-dir: 9 12 long: data-dir 10 help: Here instance persists all its data 13 help: > 14 Here instance persists all its data 15 (default: .) 11 16 takes_value: true 12 default_value: "." 13 17 value_name: path 14 18 15 19 - listen: 16 20 # short: l 17 21 long: listen 18 help: Socket bind address 22 help: > 23 Socket bind address (default: 3301) Преимущество в лаконичности и читаемости. Но вообще так исторически сложилось - я взял первое что показалось проще. В качестве альтернативы Сережа предлагал переехать на https://crates.io/crates/structopt, можно его потом попробовать.
By Yaroslav Dynnikov on 2022-01-18T13:44:22 (imported from GitLab)
12 12 cmd.current_dir(temp_path); 13 13 cmd.arg("run"); 14 cmd.args(["-e", "os.exit()"]); 14 cmd.arg("-e").arg( 15 r#" 16 function assert_eq(l, r) 17 if l ~= r then 18 error(('Assertion failed: %q ~= %q'):format(l, r), 2) 19 end 20 end 21 assert_eq(os.environ()['PICODATA_LISTEN'], "3301") 22 assert_eq(os.environ()['PICODATA_DATA_DIR'], ".") 23 os.exit() 24 "#, 25 ); 15 26 cmd.timeout(Duration::from_secs(1)).assert().success();
Please register or sign in to reply