Convert exec.Command for gofmt to standard go/format package

Converts exec.Command call for formatting the generated Go code from the
bootstrapper to use the standard `go/format` package for formatting.

Fixes an issue / problem that the `cdproto-gen` tool is encountering.
This commit is contained in:
Kenneth Shaw
2019-10-03 08:15:46 +07:00
parent 1b2b06f5f2
commit 3b3f3665d3
+14 -10
View File
@@ -7,6 +7,7 @@ package bootstrap
import (
"fmt"
"go/format"
"io/ioutil"
"os"
"os/exec"
@@ -176,18 +177,21 @@ func (g *Generator) Run() error {
if err = cmd.Run(); err != nil {
return err
}
f.Close()
if !g.NoFormat {
cmd = exec.Command("gofmt", "-w", f.Name())
cmd.Stderr = os.Stderr
cmd.Stdout = os.Stdout
if err = cmd.Run(); err != nil {
return err
}
// move unformatted file to out path
if g.NoFormat {
return os.Rename(f.Name(), g.OutName)
}
return os.Rename(f.Name(), g.OutName)
// format file and write to out path
in, err := ioutil.ReadFile(f.Name())
if err != nil {
return err
}
out, err := format.Source(in)
if err != nil {
return err
}
return ioutil.WriteFile(g.OutName, out, 0644)
}