|
|
|
|
@ -5,6 +5,7 @@ import (
|
|
|
|
|
"os"
|
|
|
|
|
"strings"
|
|
|
|
|
"sync"
|
|
|
|
|
"unicode"
|
|
|
|
|
|
|
|
|
|
"github.com/mitchellh/iochan"
|
|
|
|
|
)
|
|
|
|
|
@ -154,11 +155,11 @@ OutputLoop:
|
|
|
|
|
// Make sure we finish off stdout/stderr because we may have gotten
|
|
|
|
|
// a message from the exit channel before finishing these first.
|
|
|
|
|
for output := range stdoutCh {
|
|
|
|
|
ui.Message(strings.TrimSpace(output))
|
|
|
|
|
ui.Message(r.cleanOutputLine(output))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for output := range stderrCh {
|
|
|
|
|
ui.Message(strings.TrimSpace(output))
|
|
|
|
|
ui.Message(r.cleanOutputLine(output))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return nil
|
|
|
|
|
@ -196,7 +197,7 @@ func (r *RemoteCmd) Wait() {
|
|
|
|
|
// UI output when we're reading from a remote command.
|
|
|
|
|
func (r *RemoteCmd) cleanOutputLine(line string) string {
|
|
|
|
|
// Trim surrounding whitespace
|
|
|
|
|
line = strings.TrimSpace(line)
|
|
|
|
|
line = strings.TrimRightFunc(line, unicode.IsSpace)
|
|
|
|
|
|
|
|
|
|
// Trim up to the first carriage return, since that text would be
|
|
|
|
|
// lost anyways.
|
|
|
|
|
|