| 3341 | } |
| 3342 | |
| 3343 | fn parse_optional_udid_value_args( |
| 3344 | command: &str, |
| 3345 | args: Vec<String>, |
| 3346 | value_name: &str, |
| 3347 | ) -> anyhow::Result<(Option<String>, String)> { |
| 3348 | let args = clean_cli_args(args); |
| 3349 | match args.as_slice() { |
| 3350 | [value] => Ok((None, value.clone())), |
| 3351 | [udid, value] => Ok((Some(udid.clone()), value.clone())), |
| 3352 | [] => anyhow::bail!("{command} requires {value_name}."), |
| 3353 | _ => anyhow::bail!("{command} accepts either {value_name} or UDID {value_name}."), |
| 3354 | } |
| 3355 | } |
| 3356 | |
| 3357 | fn parse_optional_udid_text_args( |
| 3358 | command: &str, |