Skip to content

Commit f1dc67e

Browse files
authored
Merge pull request #313 from thockin/master
Look for gofmt and if not found, log and proceed
2 parents c297c0c + 9ab29f2 commit f1dc67e

File tree

2 files changed

+17
-6
lines changed

2 files changed

+17
-6
lines changed

v2/generator/execute.go

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,8 @@ func assembleGoFile(w io.Writer, f *File) {
117117

118118
func formatCode(src []byte) ([]byte, error) {
119119
// We call goimports because it formats imports better than gofmt, but also
120-
// call gofmt because it has the "simplify" logic.
120+
// call gofmt because it has the "simplify" logic. If a gofmt binary is
121+
// not found, we will skip it.
121122
src, err := importsWrapper(src)
122123
if err != nil {
123124
return nil, err
@@ -136,16 +137,24 @@ func importsWrapper(src []byte) ([]byte, error) {
136137
}
137138

138139
func gofmtWrapper(src []byte) ([]byte, error) {
139-
cmd := exec.Command("gofmt", "-s")
140+
const gofmt = "gofmt"
141+
142+
if _, err := exec.LookPath(gofmt); err != nil {
143+
klog.Errorf("WARNING: skipping output simplification: %v", err)
144+
return nil, nil
145+
}
146+
147+
cmd := exec.Command(gofmt, "-s")
140148
cmd.Stdin = bytes.NewReader(src)
141149
stdout := &bytes.Buffer{}
142150
cmd.Stdout = stdout
143151
stderr := &bytes.Buffer{}
144152
cmd.Stderr = stderr
145153
if err := cmd.Run(); err != nil {
146154
if stderr.Len() > 0 {
147-
return nil, fmt.Errorf("gofmt failed: %v: %s", err, strings.TrimSpace(stderr.String()))
155+
return nil, fmt.Errorf("%s failed: %v: %s", gofmt, err, strings.TrimSpace(stderr.String()))
148156
}
157+
return nil, fmt.Errorf("%s failed: %v", gofmt, err)
149158
}
150159
return stdout.Bytes(), nil
151160
}

v2/hack/verify-examples.sh

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
# Exit immediately if any command fails
99
set -e
1010

11+
VERBOSE=${VERBOSE:-0}
12+
1113
# Make sure we run from the v2 root.
1214
V2_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
1315
cd "${V2_ROOT}"
@@ -20,7 +22,7 @@ fi
2022

2123
echo "Running ./examples/tracer"
2224
rm ./examples/tracer/testdata/simple/out.txt
23-
go run ./examples/tracer ./examples/tracer/testdata/simple > ./examples/tracer/testdata/simple/out.txt
25+
go run ./examples/tracer -v"${VERBOSE}" ./examples/tracer/testdata/simple > ./examples/tracer/testdata/simple/out.txt
2426
if ! git diff --quiet HEAD; then
2527
echo "FAIL: output files changed"
2628
git diff
@@ -29,7 +31,7 @@ fi
2931

3032
echo "Running ./examples/kilroy"
3133
rm ./examples/kilroy/testdata/simple/generated.kilroy.go
32-
go run ./examples/kilroy/ ./examples/kilroy/testdata/simple
34+
go run ./examples/kilroy/ -v"${VERBOSE}" ./examples/kilroy/testdata/simple
3335
if ! git diff --quiet HEAD; then
3436
echo "FAIL: output files changed"
3537
git diff
@@ -38,7 +40,7 @@ fi
3840

3941
echo "Running ./examples/pointuh"
4042
rm -rf ./examples/pointuh/testdata/results
41-
go run ./examples/pointuh/ \
43+
go run ./examples/pointuh/ -v"${VERBOSE}" \
4244
--output-dir ./examples/pointuh/testdata/results \
4345
--output-pkg k8s.io/gengo/examples/pointuh/testdata/results \
4446
./examples/pointuh/testdata/simple

0 commit comments

Comments
 (0)