Fix missing errors during lunch

Bug: 111499523
Test: lunch foo
Test: m nothing 2>/dev/null
Change-Id: Ife888d4b731bc0a0dd253ac0c8c97d6c37593d73
diff --git a/cmd/soong_ui/main.go b/cmd/soong_ui/main.go
index e2f25b8..47682ff 100644
--- a/cmd/soong_ui/main.go
+++ b/cmd/soong_ui/main.go
@@ -46,7 +46,15 @@
 }
 
 func main() {
-	writer := terminal.NewWriter(terminal.StdioImpl{})
+	var stdio terminal.StdioInterface
+	stdio = terminal.StdioImpl{}
+
+	// dumpvar uses stdout, everything else should be in stderr
+	if os.Args[1] == "--dumpvar-mode" || os.Args[1] == "--dumpvars-mode" {
+		stdio = terminal.NewCustomStdio(os.Stdin, os.Stderr, os.Stderr)
+	}
+
+	writer := terminal.NewWriter(stdio)
 	defer writer.Finish()
 
 	log := logger.New(writer)