Передача команды в другую команду, что я здесь делаю неправильно?

Я следил за этим вопросом , как сделать сэндвич-трубу в ржавчине?

это команда, которую я в конечном итоге хочу запустить (linux/bash) из ржавчины, отлично работает, написанная в оболочке, например: curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

это код, который у меня есть, представляющий то, что я пытался..

      fn add_docker_gpg_key() {
    
    let mut curl = Command::new("curl")
        .arg("-fsSL")
        .arg("https://download.docker.com/linux/ubuntu/gpg")
        .stdout(Stdio::piped())
        .spawn()
        .expect("curl fail");

    let mut apt_key = Command::new("apt-key")
        .arg("add")
        .arg("-")
        .stdin(Stdio::piped())
        .spawn()
        .expect("api=key fail");

    {
        let l_in = BufReader::new(curl.stdout.take().unwrap());
        let mut r_out = apt_key.stdin.take().unwrap();

        for line in l_in.lines() {
            println!("{:?}", line);
            write!(&mut r_out, "{}", line.unwrap()).unwrap();
        }
    }
    let left_ecode = curl.wait().expect("failed to wait on child");
    let right_ecode = apt_key.wait().expect("failed to wait on child");
    assert!(left_ecode.success());
    assert!(right_ecode.success());
}

конец скрипта image Я получаю это, когда запускаю его

что лучше всего сделать для этого?

0 ответов

Другие вопросы по тегам