use crate::{ jobs::JobBldr, libsh::error::ShResult, parse::{NdRule, Node}, prelude::*, procio::{IoStack, borrow_fd}, state, }; use super::setup_builtin; pub fn pwd(node: Node, io_stack: &mut IoStack, job: &mut JobBldr) -> ShResult<()> { let NdRule::Command { assignments: _, argv, } = node.class else { unreachable!() }; let (_, _guard) = setup_builtin(argv, job, Some((io_stack, node.redirs)))?; let stdout = borrow_fd(STDOUT_FILENO); let mut curr_dir = env::current_dir().unwrap().to_str().unwrap().to_string(); curr_dir.push('\n'); write(stdout, curr_dir.as_bytes())?; state::set_status(0); Ok(()) }