agcodex_execpolicy/sed_command.rs
1use crate::error::Error;
2use crate::error::Result;
3
4pub fn parse_sed_command(sed_command: &str) -> Result<()> {
5 // For now, we parse only commands like `122,202p`.
6 if let Some(stripped) = sed_command.strip_suffix("p")
7 && let Some((first, rest)) = stripped.split_once(",")
8 && first.parse::<u64>().is_ok()
9 && rest.parse::<u64>().is_ok()
10 {
11 return Ok(());
12 }
13
14 Err(Error::SedCommandNotProvablySafe {
15 command: sed_command.to_string(),
16 })
17}