use std::process::Command;
pub fn ripgrep_files(pattern: &str, path: &str) -> Result<Vec<String>, String> {
let output = Command::new("rg")
.args(["--files", "--hidden", "--glob", "!*node_modules*", path])
.arg(pattern)
.output()
.map_err(|e| e.to_string())?;
if !output.status.success() {
return Ok(Vec::new()); }
let files = String::from_utf8_lossy(&output.stdout);
Ok(files.lines().map(|s| s.to_string()).collect())
}
pub fn is_ripgrep_available() -> bool {
Command::new("rg")
.arg("--version")
.output()
.map(|o| o.status.success())
.unwrap_or(false)
}
pub fn get_ripgrep_version() -> Option<String> {
Command::new("rg")
.arg("--version")
.output()
.ok()
.and_then(|o| {
if o.status.success() {
Some(String::from_utf8_lossy(&o.stdout).trim().to_string())
} else {
None
}
})
}