#![allow(dead_code)]
pub const CROSS_PLATFORM_CODE_EXEC: &[&str] = &[
"python", "python3", "python2", "node", "deno", "tsx", "ruby", "perl", "php", "lua",
"npx", "bunx", "npm run", "yarn run", "pnpm run", "bun run",
"bash", "sh", "ssh",
];
pub fn dangerous_bash_patterns() -> Vec<&'static str> {
let mut patterns: Vec<&'static str> = CROSS_PLATFORM_CODE_EXEC.to_vec();
patterns.extend(&["zsh", "fish", "eval", "exec", "env", "xargs", "sudo"]);
if std::env::var("USER_TYPE").as_deref() == Ok("ant") {
patterns.extend(&[
"fa run", "coo", "gh", "gh api", "curl", "wget",
"git", "kubectl", "aws", "gcloud", "gsutil",
]);
}
patterns
}