Replacing requested user input with a variable on a process multiple times

Hello guys! I'm trying to make a CLI wrapper, but i don't know how to replace the requested user input with a variable or something(the command in which I wanted to do that does the following: firstly prints something , then requests for user input, and lastly prints some output again)
The code I've done so far:

let mut child = Command::new("solana-keygen")
        // .current_dir("")
        .arg("new")
        .arg("--outfile")
        .arg("wallet.json")
        .stdin(Stdio::piped())
        .stdout(Stdio::piped())
        .spawn()
        .expect("Sorry");

    

    //  child.wait().expect("Failed to read stdout");

    let mut stdin = child.stdin.take().expect("Failed to open stdin");
        stdin
            .write_all("s\n".as_bytes())
            .expect("Failed to write to stdin");
  

    
    
     let  output = child.wait_with_output().expect("Failed to read stdout");
     println!("output = {}", output.stdout_to_string());

Does anyone know how I could solve this?