From 2d75a4537c6e49fb734cf8a062ec47a01c3b4322 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Fri, 27 Oct 2023 20:26:04 -0700 Subject: [PATCH] close input channel when receiving `io.EOF` --- cmd/cmd.go | 1 - readline/readline.go | 9 +-------- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/cmd/cmd.go b/cmd/cmd.go index b05c5bae..968d049b 100644 --- a/cmd/cmd.go +++ b/cmd/cmd.go @@ -536,7 +536,6 @@ func generateInteractive(cmd *cobra.Command, model string) error { if err != nil { return err } - defer scanner.Close() var wordWrap bool termType := os.Getenv("TERM") diff --git a/readline/readline.go b/readline/readline.go index 95b0ca18..4a945bd5 100644 --- a/readline/readline.go +++ b/readline/readline.go @@ -211,10 +211,6 @@ func (i *Instance) Readline() (string, error) { } } -func (i *Instance) Close() { - i.Terminal.Close() -} - func (i *Instance) HistoryEnable() { i.History.Enabled = true } @@ -239,6 +235,7 @@ func (t *Terminal) ioloop() { for { r, _, err := buf.ReadRune() if err != nil { + close(t.outchan) break } t.outchan <- r @@ -253,7 +250,3 @@ func (t *Terminal) Read() (rune, error) { return r, nil } - -func (t *Terminal) Close() { - close(t.outchan) -}