use std::path::PathBuf;
pub fn detect_shell() -> PathBuf {
if let Ok(p) = std::env::var("RLYX_SHELL")
.or_else(|_| std::env::var("rlyx_SHELL"))
{
let pb = PathBuf::from(p);
if pb.exists() {
return pb;
}
}
if let Ok(p) = std::env::var("SHELL") {
let pb = PathBuf::from(p);
if pb.exists() {
return pb;
}
}
for c in [
"/bin/sh",
"/usr/bin/sh",
"/bin/bash",
"/usr/bin/bash",
"/bin/zsh",
"/usr/bin/zsh",
] {
let pb = PathBuf::from(c);
if pb.exists() {
return pb;
}
}
PathBuf::from("/bin/sh")
}