pub mod progress_bar;
use anyhow::Result;
use owo_colors::OwoColorize;
use std::path::PathBuf;
pub(crate) fn logo() -> String {
format!(
"\x1b[1m\x1b[31m{}\x1b[0m",
r#"
███████╗ ██████╗ █████╗ ██████╗ ███████╗██████╗ ███████╗███╗ ██╗ ██████╗██╗ ██╗
██╔════╝██╔════╝██╔══██╗██╔══██╗██╔════╝██╔══██╗██╔════╝████╗ ██║██╔════╝██║ ██║
███████╗██║ ███████║██████╔╝█████╗ ██████╔╝█████╗ ██╔██╗ ██║██║ ███████║
╚════██║██║ ██╔══██║██╔══██╗██╔══╝ ██╔══██╗██╔══╝ ██║╚██╗██║██║ ██╔══██║
███████║╚██████╗██║ ██║██║ ██║██║ ██████╔╝███████╗██║ ╚████║╚██████╗██║ ██║
╚══════╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═══╝ ╚═════╝╚═╝ ╚═╝"#
.bold()
.red()
)
}
pub(crate) fn get_or_create_and_get_scarfbench_home_dir() -> Result<PathBuf> {
let scarfbench_home_dir = dirs::home_dir()
.expect("Unable to find home directory")
.join(".scarfbench");
log::debug!(
"Creating Scarfbench home directory at {}",
scarfbench_home_dir.to_string_lossy()
);
std::fs::create_dir_all(&scarfbench_home_dir)
.expect("Unable to create scarfbench home directory at ~/.scarfbench");
vec!["benchmark", "evals", "logs"]
.into_iter()
.map(|p| scarfbench_home_dir.join(p))
.try_for_each(std::fs::create_dir_all)?;
Ok(scarfbench_home_dir)
}
#[allow(unused)]
pub(crate) fn get_logs_dir() -> Result<PathBuf> {
Ok(get_or_create_and_get_scarfbench_home_dir()?.join("logs"))
}