shrs_output_capture 0.0.4

Capture the previous stdout and stderr output
Documentation
use shrs::prelude::*;

use crate::OutputCaptureState;

#[derive(Default)]
pub struct AgainBuiltin {}

impl AgainBuiltin {
    pub fn new() -> Self {
        AgainBuiltin {}
    }
}

impl BuiltinCmd for AgainBuiltin {
    fn run(
        &self,
        _sh: &Shell,
        ctx: &mut Context,
        _rt: &mut Runtime,
        _args: &[String],
    ) -> anyhow::Result<CmdOutput> {
        if let Some(state) = ctx.state.get::<OutputCaptureState>() {
            print!("{}", state.last_output.stdout);
            print!("{}", state.last_output.stderr);
        }

        Ok(CmdOutput::success())
    }
}