fix(config): inherit stdin/stdout/stderr instead of piping to fix editor invocation (#3032)

Due to the introduction of utils::create_command, commands now have
stdin set to null, and stdout and stderr set to piped.
This prevents console editors from working when invoked via
starship config
This commit is contained in:
Alexandru Macovei 2021-09-04 04:56:43 +03:00 committed by GitHub
parent 6a6a4dae2a
commit 7388c5a79e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -2,6 +2,7 @@ use std::env;
use std::ffi::OsString; use std::ffi::OsString;
use std::io::ErrorKind; use std::io::ErrorKind;
use std::process; use std::process;
use std::process::Stdio;
use crate::config::RootModuleConfig; use crate::config::RootModuleConfig;
use crate::config::StarshipConfig; use crate::config::StarshipConfig;
@ -158,6 +159,9 @@ pub fn edit_configuration() {
let command = utils::create_command(&editor_cmd[0]) let command = utils::create_command(&editor_cmd[0])
.expect("Unable to locate editor in $PATH.") .expect("Unable to locate editor in $PATH.")
.stdin(Stdio::inherit())
.stdout(Stdio::inherit())
.stderr(Stdio::inherit())
.args(&editor_cmd[1..]) .args(&editor_cmd[1..])
.arg(config_path) .arg(config_path)
.status(); .status();