From fd79a7e0c746b30866471a004a78468c4b0c1484 Mon Sep 17 00:00:00 2001 From: Patrick East Date: Mon, 30 Mar 2020 17:33:19 -0700 Subject: [PATCH] cmd/fmt: Always write to stdout There was an explicit check that would prevent writing to stdout if the formatting didn't change anything. This makes sense for the "write to file" or "diff" options as we can save work by bailing out early, but if configured to write the file contents to stdout we should do so in all cases. Fixes: #2235 Signed-off-by: Patrick East --- cmd/fmt.go | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/cmd/fmt.go b/cmd/fmt.go index 6959c4563c..9c399ae3d0 100644 --- a/cmd/fmt.go +++ b/cmd/fmt.go @@ -106,10 +106,6 @@ func formatFile(filename string, info os.FileInfo, err error) error { return newError("failed to parse Rego source file: %v", err) } - if bytes.Equal(formatted, contents) { - return nil - } - var out io.Writer = os.Stdout if fmtParams.list { fmt.Fprintln(out, filename) @@ -158,15 +154,15 @@ func formatStdin(r io.Reader, w io.Writer) error { return err } - if !bytes.Equal(formatted, contents) { - _, err := w.Write(formatted) - return err - } - - return nil + _, err = w.Write(formatted) + return err } func doDiff(old, new []byte) (stdout, stderr bytes.Buffer, err error) { + if bytes.Equal(old, new) { + return stdout, stderr, nil + } + o, err := ioutil.TempFile("", ".opafmt") if err != nil { return stdout, stderr, err