trifid/tfclient/src/dirs.rs

44 lines
1.3 KiB
Rust

use std::path::PathBuf;
#[cfg(any(target_os = "linux", target_os = "netbsd"))]
pub fn config_base() -> PathBuf {
PathBuf::from("/etc/tfclient")
}
#[cfg(target_os = "windows")]
pub fn config_base() -> PathBuf {
PathBuf::from("C:\\Program Data\\e3team\\tfclient")
}
#[cfg(target_os = "macos")]
pub fn config_base() -> PathBuf {
PathBuf::from("/Library/Application Support/e3team/tfclient")
}
#[cfg(target_os = "ios")]
compile_error!("tfclient cannot be compiled for iOS");
#[cfg(target_os = "android")]
compile_error!("tfclient cannot be compiled for Android");
#[cfg(target_os = "freebsd")]
pub fn config_base() -> PathBuf {
PathBuf::from("/etc/tfclient")
}
#[cfg(target_os = "dragonfly")]
compile_error!("tfclient cannot be compiled for dragonfly");
#[cfg(target_os = "openbsd")]
compile_error!("tfclient cannot be compiled for openbsd");
pub fn config_dir(instance: &str) -> PathBuf {
config_base().join(format!("{}/", instance))
}
pub fn tfclient_toml(instance: &str) -> PathBuf {
config_base().join(format!("{}/", instance)).join("tfclient.toml")
}
pub fn tfdata_toml(instance: &str) -> PathBuf {
config_base().join(format!("{}/", instance)).join("tfdata.toml")
}
pub fn nebula_yml(instance: &str) -> PathBuf {
config_base().join(format!("{}/", instance)).join("nebula.yml")
}