use std::path::Path;
use std::process::Command;
fn rg_cmd() -> Command {
let mut c = Command::new("rg");
c.env_remove("RIPGREP_CONFIG_PATH");
c
}
pub fn rg() -> Option<&'static str> {
match rg_cmd().arg("--version").output() {
Ok(out) if out.status.success() => Some("rg"),
_ => None,
}
}
pub fn rg_files(dir: &Path) -> Vec<String> {
let out = rg_cmd()
.arg("--files")
.current_dir(dir)
.output()
.expect("run rg --files");
assert!(
out.status.success() || out.status.code() == Some(1),
"rg --files failed: {}",
String::from_utf8_lossy(&out.stderr)
);
let mut v: Vec<String> = String::from_utf8_lossy(&out.stdout)
.lines()
.map(|l| l.replace('\\', "/"))
.collect();
v.sort();
v
}