aboutsummaryrefslogtreecommitdiff
path: root/src/cli.rs
diff options
context:
space:
mode:
authorakbash <akbash@herdr.dev>2026-09-10 13:21:27 +0300
committerGitHub <noreply@github.com>2026-09-10 13:21:27 +0300
commit6a93b756e9397f98884e946b84bb4ce5a5f5636e (patch)
tree44c0768ab1a8f49d5403141625203bf1750f8c99 /src/cli.rs
parente1bb3df0ac4dd80d7a324deb53cd91d13b942800 (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.rs15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/cli.rs b/src/cli.rs
index ea643f6a..d4ae2f84 100644
--- a/src/cli.rs
+++ b/src/cli.rs
@@ -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(),