command_stream/commands/
env.rs1use crate::commands::CommandContext;
4use crate::utils::CommandResult;
5use std::collections::HashMap;
6
7pub async fn env(ctx: CommandContext) -> CommandResult {
11 let mut output = String::new();
12
13 let mut env_vars: HashMap<_, _> = std::env::vars().collect();
14 if let Some(overrides) = ctx.env {
15 env_vars.extend(overrides);
16 }
17 for (key, value) in env_vars {
18 output.push_str(&format!("{}={}\n", key, value));
19 }
20
21 CommandResult::success(output)
22}
23
24#[cfg(test)]
25mod tests {
26 use super::*;
27
28 #[tokio::test]
29 async fn test_env() {
30 let ctx = CommandContext::new(vec![]);
31 let result = env(ctx).await;
32
33 assert!(result.is_success());
34 assert!(result.stdout.contains("PATH=") || result.stdout.contains("HOME="));
36 }
37}