Inject CONFIG env variable when executing Shell and Script extensions. Fix #277
This commit is contained in:
parent
a37c588e26
commit
a57f828652
|
@ -75,10 +75,15 @@ impl super::Extension for ScriptExtension {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
let mut command = Command::new(&str_args[0]);
|
||||||
|
|
||||||
|
// Inject the $CONFIG variable
|
||||||
|
command.env("CONFIG", crate::context::get_config_dir());
|
||||||
|
|
||||||
let output = if str_args.len() > 1 {
|
let output = if str_args.len() > 1 {
|
||||||
Command::new(&str_args[0]).args(&str_args[1..]).output()
|
command.args(&str_args[1..]).output()
|
||||||
} else {
|
} else {
|
||||||
Command::new(&str_args[0]).output()
|
command.output()
|
||||||
};
|
};
|
||||||
|
|
||||||
match output {
|
match output {
|
||||||
|
|
|
@ -40,15 +40,38 @@ pub enum Shell {
|
||||||
|
|
||||||
impl Shell {
|
impl Shell {
|
||||||
fn execute_cmd(&self, cmd: &str) -> std::io::Result<Output> {
|
fn execute_cmd(&self, cmd: &str) -> std::io::Result<Output> {
|
||||||
match self {
|
let mut command = match self {
|
||||||
Shell::Cmd => Command::new("cmd").args(&["/C", &cmd]).output(),
|
Shell::Cmd => {
|
||||||
Shell::Powershell => Command::new("powershell")
|
let mut command = Command::new("cmd");
|
||||||
.args(&["-Command", &cmd])
|
command.args(&["/C", &cmd]);
|
||||||
.output(),
|
command
|
||||||
Shell::WSL => Command::new("wsl").args(&["bash", "-c", &cmd]).output(),
|
},
|
||||||
Shell::Bash => Command::new("bash").args(&["-c", &cmd]).output(),
|
Shell::Powershell => {
|
||||||
Shell::Sh => Command::new("sh").args(&["-c", &cmd]).output(),
|
let mut command = Command::new("powershell");
|
||||||
}
|
command.args(&["-Command", &cmd]);
|
||||||
|
command
|
||||||
|
},
|
||||||
|
Shell::WSL => {
|
||||||
|
let mut command = Command::new("wsl");
|
||||||
|
command.args(&["bash", "-c", &cmd]);
|
||||||
|
command
|
||||||
|
},
|
||||||
|
Shell::Bash => {
|
||||||
|
let mut command = Command::new("bash");
|
||||||
|
command.args(&["-c", &cmd]);
|
||||||
|
command
|
||||||
|
},
|
||||||
|
Shell::Sh => {
|
||||||
|
let mut command = Command::new("sh");
|
||||||
|
command.args(&["-c", &cmd]);
|
||||||
|
command
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
// Inject the $CONFIG variable
|
||||||
|
command.env("CONFIG", crate::context::get_config_dir());
|
||||||
|
|
||||||
|
command.output()
|
||||||
}
|
}
|
||||||
|
|
||||||
fn from_string(shell: &str) -> Option<Shell> {
|
fn from_string(shell: &str) -> Option<Shell> {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user