main.go: don't set TTY interface from tty.Open() in case open fails

If tty.Open fails the return tty is still nil, but the interface type will be set; meaning in go that `TTY == nil` will always be false.

fix #7506
pull/7517/head
Adrien Delorme 7 years ago
parent 9f3bbd249c
commit fa7b922e7a

@ -186,22 +186,20 @@ func wrappedMain() int {
return 1
}
} else {
var TTY packer.TTY
basicUi := &packer.BasicUi{
Reader: os.Stdin,
Writer: os.Stdout,
ErrorWriter: os.Stdout,
}
ui = basicUi
if !inPlugin {
var err error
TTY, err = tty.Open()
if err != nil {
if TTY, err := tty.Open(); err != nil {
fmt.Fprintf(os.Stderr, "No tty available: %s\n", err)
} else {
basicUi.TTY = TTY
defer TTY.Close()
}
}
ui = &packer.BasicUi{
Reader: os.Stdin,
Writer: os.Stdout,
ErrorWriter: os.Stdout,
TTY: TTY,
}
}
// Create the CLI meta
CommandMeta = &command.Meta{

Loading…
Cancel
Save