abiosoft / abiosoft/ishell

Shell prints input line when run with NewWithConfig on different terminal

Aperta
#116 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Go
Stelle
1.8k
Fork
213
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

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!

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.