use std::sync::Once;
use aube::embed::{AUBE, Host};
static MISE_HOST: Host = Host {
name: "mise",
display_name: "mise",
vendor: None,
version: env!("CARGO_PKG_VERSION"),
user_agent: concat!("mise/", env!("CARGO_PKG_VERSION")),
self_names: AUBE.self_names,
compatible_names: AUBE.compatible_names,
lockfile_basename: AUBE.lockfile_basename,
workspace_yaml: AUBE.workspace_yaml,
manifest_namespace: AUBE.manifest_namespace,
env_prefix: AUBE.env_prefix,
config_env_prefix: AUBE.config_env_prefix,
cache_namespace: AUBE.cache_namespace,
data_namespace: AUBE.data_namespace,
canonical_lockfile_always_wins: true,
runtime_switching: false,
self_engines_check: false,
self_update_enabled: false,
};
static INIT: Once = Once::new();
pub fn init() {
INIT.call_once(|| {
aube::embed::initialize(&MISE_HOST, vec![]);
});
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn mise_host_keeps_aube_config_names() {
assert_eq!(MISE_HOST.cache_namespace, AUBE.cache_namespace);
assert_eq!(MISE_HOST.data_namespace, AUBE.data_namespace);
assert_eq!(MISE_HOST.manifest_namespace, AUBE.manifest_namespace);
assert_eq!(MISE_HOST.lockfile_basename, AUBE.lockfile_basename);
}
#[test]
fn mise_host_brands_as_mise() {
assert_eq!(MISE_HOST.display_name, "mise");
assert_eq!(MISE_HOST.vendor, None);
assert_eq!(MISE_HOST.version, env!("CARGO_PKG_VERSION"));
assert!(MISE_HOST.user_agent.starts_with("mise/"));
}
#[test]
fn mise_host_disables_aube_owned_behavior() {
assert!(!MISE_HOST.runtime_switching);
assert!(!MISE_HOST.self_engines_check);
assert!(!MISE_HOST.self_update_enabled);
}
}