use serde::Deserialize; use tokio::process::Command; use crate::{get_configs_path, run_command}; #[derive(Debug, Deserialize)] pub struct TalosConfig { pub context: String, } pub async fn get_current_context() -> Option { let path = get_configs_path().join("talosconfig"); tokio::fs::read(&path) .await .ok() .and_then(|config| serde_yaml::from_slice(&config).ok()) .map(|config: TalosConfig| config.context) } pub async fn set_context(context: String) { let path = get_configs_path().join("talosconfig"); let mut command = Command::new("talosctl"); command.args([ "config", "--talosconfig", path.to_str().expect("Path should be valid utf-8"), "context", &context, ]); run_command(command).await; }