diff options
| author | akbash <akbash@herdr.dev> | 2026-09-10 13:21:27 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-09-10 13:21:27 +0300 |
| commit | 6a93b756e9397f98884e946b84bb4ce5a5f5636e (patch) | |
| tree | 44c0768ab1a8f49d5403141625203bf1750f8c99 /src/cli.rs | |
| parent | e1bb3df0ac4dd80d7a324deb53cd91d13b942800 (diff) | |
fix: accept session names after option terminator (#3222)
refs #3220
Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com>
Diffstat (limited to 'src/cli.rs')
| -rw-r--r-- | src/cli.rs | 15 |
1 files changed, 14 insertions, 1 deletions
@@ -966,8 +966,11 @@ fn parse_session_json_only(args: &[String], usage: &str) -> Result<bool, i32> { fn parse_session_name_and_json(args: &[String], usage: &str) -> Result<(String, bool), i32> { let mut name = None; let mut json = false; + let mut options_ended = false; for arg in args { - if arg == "--json" { + if !options_ended && arg == "--" { + options_ended = true; + } else if !options_ended && arg == "--json" { json = true; } else if name.is_none() { name = Some(arg.clone()); @@ -1088,6 +1091,16 @@ mod tests { } #[test] + fn session_name_parser_accepts_option_terminator() { + for name in ["-h", "--json"] { + assert_eq!( + super::parse_session_name_and_json(&["--".to_string(), name.to_string()], "usage",), + Ok((name.to_string(), false)) + ); + } + } + + #[test] fn parse_env_assignment_accepts_empty_values() { assert_eq!( super::parse_env_assignment("HERDR_ROLE=").unwrap(), |
