summaryrefslogtreecommitdiffstats
path: root/src/pipeline/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/pipeline/mod.rs')
-rw-r--r--src/pipeline/mod.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/pipeline/mod.rs b/src/pipeline/mod.rs
index 015eeef..a54951c 100644
--- a/src/pipeline/mod.rs
+++ b/src/pipeline/mod.rs
@@ -37,7 +37,8 @@ async fn run_with_env(
env: &mut Env,
shell_write: &async_std::fs::File,
) -> anyhow::Result<()> {
- let pipeline = crate::parse::Pipeline::parse(env.pipeline().unwrap())?;
+ let pipeline =
+ crate::parse::ast::Pipeline::parse(env.pipeline().unwrap())?;
let (children, pg) = spawn_children(pipeline, env)?;
let status = wait_children(children, pg, env, shell_write).await;
env.set_status(status);
@@ -61,9 +62,10 @@ async fn write_event(
}
fn spawn_children(
- pipeline: crate::parse::Pipeline,
+ pipeline: crate::parse::ast::Pipeline,
env: &Env,
) -> anyhow::Result<(Vec<Child>, Option<nix::unistd::Pid>)> {
+ let pipeline = pipeline.eval(env);
let mut cmds: Vec<_> = pipeline.into_exes().map(Command::new).collect();
for i in 0..(cmds.len() - 1) {
let (r, w) = pipe()?;