diff --git a/cmd/breaker-cli/breaker.gohtml b/cmd/breaker-cli/breaker.gohtml
index a8d10f5..c6588d6 100644
--- a/cmd/breaker-cli/breaker.gohtml
+++ b/cmd/breaker-cli/breaker.gohtml
@@ -1,4 +1,5 @@
-// Code generated by "breaker-cli"; DO NOT EDIT.
+// Code generated by breaker-cli. DO NOT EDIT.
+// breaker-cli: https://github.com/chenyanchen/breaker/tree/main/cmd/breaker-cli
{{$PackageName := .Name -}}
package {{$PackageName}}
@@ -21,23 +22,24 @@ func New{{$StructName}}(source {{$PackageName}}.{{$InterfaceName}}) *{{$StructNa
{{range .Implemented.Methods -}}
{{$ErrorReturn := "" -}}
func (b *{{$StructName}}) {{.Name}}({{range $i, $p := .Params}}{{.Name}} {{.Type}}, {{end}}) ({{range .Results}}{{.Type}}, {{end}}) {
- {{/* Find the error return */}}
- {{- range .Results}}{{- if eq .Type "error" -}}{{$ErrorReturn = .Name}}{{end -}}{{- end -}}
+ {{/* Find the error return */}}
+ {{- range .Results}}{{if eq .Type "error"}}{{$ErrorReturn = .Name}}{{end}}{{end -}}
+ {{/* Return directly if there are no error return */}}
{{- if eq $ErrorReturn "" -}}
- return b.source.{{.Name}}({{- range .Params}}{{if eq .Ellipsis true}}{{.Name}}...{{else}}{{.Name}},{{end}}{{end}})
+ return b.source.{{.Name}}({{range .Params}}{{if eq .Ellipsis true}}{{.Name}}...{{else}}{{.Name}},{{end}}{{end}})
{{- else -}}
var (
{{- range .Results}}
{{.Name}} {{.Type}}
{{- end}}
)
- err := b.breaker.Do(func() error {
- {{range $i, $r := .Results -}}{{- if $i -}},{{end}}{{.Name}}{{end}} = b.source.{{.Name}}({{range .Params}}{{if eq .Ellipsis true}}{{.Name}}...{{else}}{{.Name}},{{end}}{{end}})
+ {{$ErrorReturn}} = b.breaker.Do(func() error {
+ {{range $i, $r := .Results}}{{if $i}},{{end}}{{.Name}}{{end}} = b.source.{{.Name}}({{range .Params}}{{if eq .Ellipsis true}}{{.Name}}...{{else}}{{.Name}},{{end}}{{end}})
return {{$ErrorReturn}}
})
- return {{range .Results}}{{if eq .Name $ErrorReturn }}err,{{else}}{{.Name}},{{end}}{{end}}
- {{- end -}}
+ return {{range $i, $r :=.Results}}{{if $i}},{{end}}{{.Name}}{{end}}
+ {{- end}}
}
{{end -}}
diff --git a/cmd/breaker-cli/main.go b/cmd/breaker-cli/main.go
index 2d2c9b6..8e1a4de 100644
--- a/cmd/breaker-cli/main.go
+++ b/cmd/breaker-cli/main.go
@@ -235,8 +235,6 @@ func generate(ctx context.Context, pkg Package) (io.Reader, error) {
return nil, fmt.Errorf("execute template: %w", err)
}
- // io.Copy(os.Stdout, buf)
-
data, err := imports.Process("", buf.Bytes(), nil)
if err != nil {
return nil, fmt.Errorf("goimports: %w", err)
diff --git a/cmd/breaker-cli/template.go b/cmd/breaker-cli/template.go
index f1aec85..67e258c 100644
--- a/cmd/breaker-cli/template.go
+++ b/cmd/breaker-cli/template.go
@@ -1,6 +1,7 @@
package main
-const breakerTemplate = `// Code generated by "breaker-cli"; DO NOT EDIT.
+const breakerTemplate = `// Code generated by breaker-cli. DO NOT EDIT.
+// breaker-cli: https://github.com/chenyanchen/breaker/tree/main/cmd/breaker-cli
{{$PackageName := .Name -}}
package {{$PackageName}}
@@ -21,33 +22,26 @@ func New{{$StructName}}(source {{$PackageName}}.{{$InterfaceName}}) *{{$StructNa
}
{{range .Implemented.Methods -}}
- {{$ErrorReturn := "nil" -}}
+ {{$ErrorReturn := "" -}}
func (b *{{$StructName}}) {{.Name}}({{range $i, $p := .Params}}{{.Name}} {{.Type}}, {{end}}) ({{range .Results}}{{.Type}}, {{end}}) {
+ {{/* Find the error return */}}
+ {{- range .Results}}{{if eq .Type "error"}}{{$ErrorReturn = .Name}}{{end}}{{end -}}
+
+ {{/* Return directly if there are no error return */}}
+ {{- if eq $ErrorReturn "" -}}
+ return b.source.{{.Name}}({{range .Params}}{{if eq .Ellipsis true}}{{.Name}}...{{else}}{{.Name}},{{end}}{{end}})
+ {{- else -}}
var (
{{- range .Results}}
{{.Name}} {{.Type}}
{{- end}}
)
- _ = b.breaker.Do(func() error {
- {{range $i, $r := .Results -}}
- {{- if $i -}}, {{end}}
- {{- if eq .Type "error" -}}
- {{$ErrorReturn = .Name}}
- {{- .Name -}}
- {{ else }}
- {{- .Name -}}
- {{ end }}
- {{- end}} = b.source.{{.Name}}(
- {{- range .Params -}}
- {{- if eq .Ellipsis true -}}
- {{- .Name -}}...
- {{- else -}}
- {{- .Name -}},
- {{- end -}}
- {{- end -}})
+ {{$ErrorReturn}} = b.breaker.Do(func() error {
+ {{range $i, $r := .Results}}{{if $i}},{{end}}{{.Name}}{{end}} = b.source.{{.Name}}({{range .Params}}{{if eq .Ellipsis true}}{{.Name}}...{{else}}{{.Name}},{{end}}{{end}})
return {{$ErrorReturn}}
})
- return {{range $i, $r := .Results}}{{if $i}}, {{end}}{{.Name}}{{end}}
+ return {{range $i, $r :=.Results}}{{if $i}},{{end}}{{.Name}}{{end}}
+ {{- end}}
}
{{end -}}