use std::{fs, path::PathBuf, sync::LazyLock};
use crate::MICROSANDBOX_HOME_DIR;
pub const DEFAULT_LOG_MAX_SIZE: u64 = 10 * 1024 * 1024;
pub const DEFAULT_NUM_VCPUS: u8 = 1;
pub const DEFAULT_MEMORY_MIB: u32 = 1024;
pub static DEFAULT_MICROSANDBOX_HOME: LazyLock<PathBuf> =
LazyLock::new(|| dirs::home_dir().unwrap().join(MICROSANDBOX_HOME_DIR));
pub const DEFAULT_OCI_REGISTRY: &str = "docker.io";
pub const DEFAULT_OCI_REFERENCE_TAG: &str = "latest";
pub const DEFAULT_OCI_REFERENCE_REPO_NAMESPACE: &str = "library";
pub const DEFAULT_CONFIG: &str = "# Sandbox configurations\nsandboxes:\n";
pub const DEFAULT_SHELL: &str = "/bin/sh";
pub static DEFAULT_MSBRUN_EXE_PATH: LazyLock<PathBuf> = LazyLock::new(|| {
let current_exe = std::env::current_exe().unwrap();
let actual_exe = fs::canonicalize(current_exe).unwrap();
actual_exe.parent().unwrap().join("msbrun")
});
pub static DEFAULT_MSBSERVER_EXE_PATH: LazyLock<PathBuf> = LazyLock::new(|| {
let current_exe = std::env::current_exe().unwrap();
let actual_exe = fs::canonicalize(current_exe).unwrap();
actual_exe.parent().unwrap().join("msbserver")
});
pub const DEFAULT_WORKDIR: &str = "/";
pub const DEFAULT_SERVER_NAMESPACE: &str = "default";
pub const DEFAULT_SERVER_HOST: &str = "127.0.0.1";
pub const DEFAULT_SERVER_PORT: u16 = 5555;
pub const DEFAULT_PORTAL_GUEST_PORT: u16 = 4444;