cmd/cue/cmd: fix export status and output

Fixes #218.

Change-Id: Ib76e07bab60499220712d50df97118ff3033f837
Reviewed-on: https://cue-review.googlesource.com/c/cue/+/4360
Reviewed-by: Marcel van Lohuizen <mpvl@golang.org>
diff --git a/cmd/cue/cmd/export.go b/cmd/cue/cmd/export.go
index e7218a3..7183c13 100644
--- a/cmd/cue/cmd/export.go
+++ b/cmd/cue/cmd/export.go
@@ -15,12 +15,12 @@
 package cmd
 
 import (
-	"cuelang.org/go/pkg/encoding/yaml"
 	"encoding/json"
 	"fmt"
 	"io"
 
 	"cuelang.org/go/cue"
+	"cuelang.org/go/pkg/encoding/yaml"
 	"github.com/spf13/cobra"
 )
 
@@ -128,7 +128,7 @@
 		if x, ok := err.(*json.MarshalerError); ok {
 			err = x.Err
 		}
-		fmt.Fprintln(w, err)
+		return err
 	}
 	return nil
 }
diff --git a/cmd/cue/cmd/testdata/script/export_err.txt b/cmd/cue/cmd/testdata/script/export_err.txt
index 7cd9c72..1bd2881 100644
--- a/cmd/cue/cmd/testdata/script/export_err.txt
+++ b/cmd/cue/cmd/testdata/script/export_err.txt
@@ -1,7 +1,10 @@
-cue export ./exporterr
+! cue export ./exporterr
 cmp stdout expect-stdout
+cmp stderr expect-stderr
+-- expect-stderr --
+a.b.2.c: cue: marshal error at path a.b.2.c: cannot convert incomplete value "int" to JSON:
+    ./exporterr/export_err.cue:4:16
 -- expect-stdout --
-cue: marshal error at path a.b.2.c: cannot convert incomplete value "int" to JSON
 -- exporterr/export_err.cue --
 package exporterr