claude_code_acp/command_safety/
mod.rs1mod is_dangerous_command;
9mod is_safe_command;
10
11pub use is_dangerous_command::command_might_be_dangerous;
12pub use is_safe_command::is_known_safe_command;
13
14pub fn extract_command_basename(cmd: &str) -> &str {
21 cmd.split_whitespace()
22 .next()
23 .and_then(|s| std::path::Path::new(s).file_name())
24 .and_then(|s| s.to_str())
25 .unwrap_or("")
26}
27
28#[cfg(test)]
29mod tests {
30 use super::*;
31
32 #[test]
33 fn test_extract_command_basename() {
34 assert_eq!(extract_command_basename("find . -name '*.rs'"), "find");
35 assert_eq!(extract_command_basename("/usr/bin/find ."), "find");
36 assert_eq!(extract_command_basename("/usr/local/bin/git status"), "git");
37 assert_eq!(extract_command_basename("ls -la"), "ls");
38 assert_eq!(extract_command_basename(""), "");
39 }
40}