use dirs::home_dir;
use std::path::PathBuf;
pub fn get_server_path(create_if_missing: bool) -> Result<PathBuf, anyhow::Error> {
let server_path = match std::env::var("BEDROCK_SERVER_PATH") {
Ok(path) => PathBuf::from(path),
Err(_) => {
let home = home_dir().ok_or_else(|| {
anyhow::anyhow!(
"Could not find home directory, and no BEDROCK_SERVER_PATH environment variable set"
)
})?;
home.join(".bedrockci/server")
}
};
if !server_path.exists() {
if create_if_missing {
std::fs::create_dir_all(&server_path)?;
} else {
return Err(anyhow::anyhow!(
"Server directory does not exist at {}. Please run 'bedrockci download' first.",
server_path.display()
));
}
}
Ok(server_path)
}