abiosoft / abiosoft/ishell

Shell prints input line when run with NewWithConfig on different terminal

Offen
#116 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Go
Sterne
1.8k
Forks
213
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

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!

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.