Skip to main content

command_stream/commands/
env.rs

1//! Virtual `env` command implementation
2
3use crate::commands::CommandContext;
4use crate::utils::CommandResult;
5use std::env;
6
7/// Execute the env command
8///
9/// Displays environment variables.
10pub async fn env(_ctx: CommandContext) -> CommandResult {
11    let mut output = String::new();
12
13    for (key, value) in env::vars() {
14        output.push_str(&format!("{}={}\n", key, value));
15    }
16
17    CommandResult::success(output)
18}
19
20#[cfg(test)]
21mod tests {
22    use super::*;
23
24    #[tokio::test]
25    async fn test_env() {
26        let ctx = CommandContext::new(vec![]);
27        let result = env(ctx).await;
28
29        assert!(result.is_success());
30        // Should contain at least PATH or HOME
31        assert!(result.stdout.contains("PATH=") || result.stdout.contains("HOME="));
32    }
33}