abiosoft / abiosoft/ishell

Shell prints input line when run with NewWithConfig on different terminal

Aberta
#116 2 comentários 0 reações 0 responsáveis Ver no GitHub
Linguagem predominante
Go
Estrelas
1.8k
Forks
213
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

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!

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.