cmd/cue/cmd: only allow trim if validation passes

Change-Id: Ib693fe718b7e707e3d860cf338a841e997e8d0e1
Reviewed-on: https://cue-review.googlesource.com/c/cue/+/2285
Reviewed-by: Marcel van Lohuizen <mpvl@google.com>
diff --git a/cmd/cue/cmd/trim.go b/cmd/cue/cmd/trim.go
index 2468957..4d7528a 100644
--- a/cmd/cue/cmd/trim.go
+++ b/cmd/cue/cmd/trim.go
@@ -25,10 +25,7 @@
 
 	"cuelang.org/go/cue"
 	"cuelang.org/go/cue/ast"
-	"cuelang.org/go/cue/build"
 	"cuelang.org/go/cue/format"
-	"cuelang.org/go/cue/load"
-	"cuelang.org/go/cue/parser"
 	"cuelang.org/go/cue/token"
 	"cuelang.org/go/internal"
 	"github.com/spf13/cobra"
@@ -106,17 +103,11 @@
 	internal.DropOptional = true
 	defer func() { internal.DropOptional = false }()
 
-	log.SetOutput(cmd.OutOrStderr())
-
-	ctxt := build.NewContext(build.ParseOptions(parser.ParseComments))
-	binst := load.Instances(args, &load.Config{Context: ctxt})
-
-	instances := cue.Build(binst)
-	for _, inst := range instances {
-		if err := inst.Err; err != nil {
-			return err
-		}
+	binst := loadFromArgs(cmd, args)
+	if binst == nil {
+		return nil
 	}
+	instances := buildInstances(cmd, binst)
 
 	// dst := flagName("o").String(cmd)
 	dst := flagOut.String(cmd)