use crate::tools::permissions::PermissionManager;
use crate::tools::utils::is_absolute_path;
pub(super) const BLANKET_BASH: &str = "Bash";
impl PermissionManager {
pub(super) fn extract_bash_path_pattern(entry: &str) -> Option<&str> {
let trimmed = entry.trim();
if let Some(rest) = trimmed.strip_prefix("Bash(") {
if let Some(end) = rest.rfind(')') {
let content = &rest[..end];
let looks_like_path = content.starts_with('~') || is_absolute_path(content);
if looks_like_path && content.contains('*') {
return Some(content);
}
}
}
None
}
pub(super) fn normalize_command(command: &str) -> String {
format!("Bash({})", command.trim())
}
pub(super) fn normalize_read(path: &str) -> String {
format!("Read({})", path.trim())
}
pub(super) fn normalize_write(path: &str) -> String {
format!("Write({})", path.trim())
}
}