arcbox-core 0.6.8

Core orchestration layer for ArcBox
pub(super) fn host_endpoint(port: u16) -> String {
    format!("https://127.0.0.1:{port}")
}

pub(super) fn rewrite_kubeconfig(kubeconfig: &str, endpoint: &str, context_name: &str) -> String {
    kubeconfig
        .lines()
        .map(|line| {
            let trimmed = line.trim_start();
            let indent = " ".repeat(line.len() - trimmed.len());

            match trimmed {
                _ if trimmed.starts_with("server:") => {
                    format!("{indent}server: {endpoint}")
                }
                "name: default" => format!("{indent}name: {context_name}"),
                "- name: default" => format!("{indent}- name: {context_name}"),
                "cluster: default" => format!("{indent}cluster: {context_name}"),
                "user: default" => format!("{indent}user: {context_name}"),
                "current-context: default" => {
                    format!("{indent}current-context: {context_name}")
                }
                _ => line.to_string(),
            }
        })
        .collect::<Vec<_>>()
        .join("\n")
}