use std::path::PathBuf;
pub fn get_default_factorio_paths() -> Vec<PathBuf> {
let mut paths = Vec::new();
if cfg!(target_os = "windows") {
for drive_letter in b'A'..=b'Z' {
let drive = char::from(drive_letter);
paths.push(PathBuf::from(format!(
r"{drive}:\Program Files (x86)\Steam\steamapps\common\Factorio\bin\x64\factorio.exe",
)));
paths.push(PathBuf::from(format!(
r"{drive}:\Program Files\Factorio\bin\x64\factorio.exe",
)));
}
if let Some(home) = dirs::home_dir() {
paths.push(
home.join(r"AppData\Local\Steam\steamapps\common\Factorio\bin\x64\factorio.exe"),
);
}
} else if cfg!(target_os = "linux") {
if let Some(home) = dirs::home_dir() {
paths.push(home.join(".local/bin/factorio"));
}
paths.push(PathBuf::from("/usr/local/bin/factorio"));
paths.push(PathBuf::from("/usr/bin/factorio"));
paths.push(PathBuf::from("/opt/factorio/bin/x64/factorio"));
if let Some(home) = dirs::home_dir() {
paths.push(home.join(".steam/steam/steamapps/common/Factorio/bin/x64/factorio"));
paths.push(home.join(".local/share/Steam/steamapps/common/Factorio/bin/x64/factorio"));
}
} else if cfg!(target_os = "macos") {
if let Some(home) = dirs::home_dir() {
paths.push(home.join(
"Library/Application Support/Steam/steamapps/common/Factorio/factorio.app/Contents/MacOS/factorio",
));
}
paths.push(PathBuf::from(
"/Applications/factorio.app/Contents/MacOS/factorio",
));
}
paths
}