| 3972 | } |
| 3973 | |
| 3974 | pub fn parse_key_value_pairs(items: &[String], flag: &str) -> Result<HashMap<String, String>> { |
| 3975 | let mut map = HashMap::new(); |
| 3976 | |
| 3977 | for item in items { |
| 3978 | let Some((key, value)) = item.split_once('=') else { |
| 3979 | return Err(miette::miette!("{flag} expects KEY=VALUE, got '{item}'")); |
| 3980 | }; |
| 3981 | |
| 3982 | let key = key.trim(); |
| 3983 | if key.is_empty() { |
| 3984 | return Err(miette::miette!("{flag} key cannot be empty")); |
| 3985 | } |
| 3986 | |
| 3987 | map.insert(key.to_string(), value.to_string()); |
| 3988 | } |
| 3989 | |
| 3990 | Ok(map) |
| 3991 | } |
| 3992 | |
| 3993 | pub fn parse_env_pairs(items: &[String]) -> Result<HashMap<String, String>> { |
| 3994 | let map = parse_key_value_pairs(items, "--env")?; |