Shell prints input line when run with NewWithConfig on different terminal
- Dominant language
- Go
- Stars
- 1.8k
- Forks
- 213
- PR merge metrics
- No merged PRs in 30d
Description
Apols if I'm making a mistake here and this is not a bug - I would like to be able to access ishell through another terminal instance on Linux with go 1.12.5. So first, I set up a listener (leaving out error handling and `defer` here to keep the code short):
```
listener, err := net.Listen("tcp", host)
conn, err := listener.Accept()
```
where host is "localhost:8000" for testing. Next, I've imported `"github.com/abiosoft/readline"` to be able to run the shell with the listener's connection parameters in the configuration for NewWithConfig:
```
termCfg := &readline.Config{
Stdin: io.ReadCloser(conn),
Stdout: io.Writer(conn),
StdinWriter: io.Writer(conn),
Stderr: io.Writer(conn),
}
```
Then I start the shell in a second terminal window through the listener:
```
shell := ishell.NewWithConfig(termCfg)
shell.Run()
```
This works fine when I open another shell and connect with `nc localhost 8000` - except for the fact that after I type in a command such as `help`, the input line is not only echoed character for character as expected, but then printed again, giving me stuff like
```
> help
> help
Commands:
clear clear the screen
exit exit the program
help display help
```
I'm wondering if StdinWriter is the problem here, but changing that doesn't seem to help. I can't find an example for `NewWithConfig` in the docs. Is this a bug or am I missing something obvious? Thanks!
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.