Hi,
I'd like to write an interactive commmand line tool for my
commands, and that also support bash commands.
My first thinking is 'why not just execute those bash commands
with bash'? But it turns out to have some problem.
When I use executeShell, I found that .bashrc is not loaded so
that custom aliases like 'll' are not usable, and there is no
color in the output.
Then I use spawnProcess:
```
import std.process;
void main() {
for (int i = 0; i < 3; ++i) { // emulate the interactive loop
string cmd = "ll";
wait(spwanProcess(["/bin/bash", "-i", "-c", cmd]));
}
}
```
with the bash option "-i", the .bashrc is loaded and the output
is colored, but with each command loop, the program is stopped
(equal to Ctrl-Z).
I thought the subprocess may have returned some special char like
Ctrl-Z, so I changed to use pipeProcess to try to catch them. But
it does not work either.
My question is:
1. what can I do to prevent this stop effect?
2. what is the best way to make a proxy to a bash process?