///|
/// Internal: resolve environment variables. Uses moonbitlang/core/env for get_env_var.

///|
/// Returns the value of the environment variable `key`, or None if unset or empty.
fn get_env(key : String) -> String? {
  match @env.get_env_var(key) {
    Some(v) => if v == "" { None } else { Some(v) }
    None => None
  }
}

///|
/// Returns the user's home directory. On Windows uses USERPROFILE (fallback HOME); elsewhere uses HOME.
fn home_dir() -> String? {
  if is_windows() {
    match get_env("USERPROFILE") {
      Some(p) => Some(p)
      None => get_env("HOME")
    }
  } else {
    get_env("HOME")
  }
}