Format generated source code.
This commit is contained in:
@ -1,10 +1,13 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/xml"
|
||||
"errors"
|
||||
"flag"
|
||||
"fmt"
|
||||
"go/format"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"reflect"
|
||||
@ -24,6 +27,7 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
formatOutput = flag.Bool("format_output", true, "If true, format the output source code.")
|
||||
outputDir = flag.String("output_dir", "", "Path to directory to write output in.")
|
||||
srvManifests = flag.String("srv_manifests", "", "Path to srvmanifests.toml")
|
||||
srvTemplate = flag.String("srv_template", "", "Path to srv.gotemplate.")
|
||||
@ -159,13 +163,8 @@ func processService(
|
||||
return err
|
||||
}
|
||||
|
||||
outputPath := filepath.Join(outputDir, srvManifest.Package+".go")
|
||||
outFile, err := os.Create(outputPath)
|
||||
if err != nil {
|
||||
return fmt.Errorf("creating output service file %q: %w", outputPath, err)
|
||||
}
|
||||
defer outFile.Close()
|
||||
err = tmpl.ExecuteTemplate(outFile, "service", tmplArgs{
|
||||
buf := &bytes.Buffer{}
|
||||
err = tmpl.ExecuteTemplate(buf, "service", tmplArgs{
|
||||
Manifest: srvManifest,
|
||||
Imps: imps,
|
||||
SCPD: sd,
|
||||
@ -173,8 +172,18 @@ func processService(
|
||||
if err != nil {
|
||||
return fmt.Errorf("executing srv_template: %w", err)
|
||||
}
|
||||
if err := outFile.Close(); err != nil {
|
||||
return fmt.Errorf("closing output service file %q: %w", outputPath, err)
|
||||
src := buf.Bytes()
|
||||
if *formatOutput {
|
||||
var err error
|
||||
src, err = format.Source(src)
|
||||
if err != nil {
|
||||
return fmt.Errorf("formatting output service file: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
outputPath := filepath.Join(outputDir, srvManifest.Package+".go")
|
||||
if err := ioutil.WriteFile(outputPath, src, os.ModePerm); err != nil {
|
||||
return fmt.Errorf("writing output service file %q: %w", outputPath, err)
|
||||
}
|
||||
|
||||
return nil
|
||||
|
Reference in New Issue
Block a user