cmd/cloner: emit go:generate pragmas
Emit a go:generate pragma with the full set of flags passed to cloner.
This allows the user to simply run "go generate" at the location
of the generate file to reproduce the file.
@@ -95,7 +95,20 @@ func main() {
}
contents := new(bytes.Buffer)
- fmt.Fprintf(contents, header, *flagTypes, pkg.Name)
+ var flagArgs []string
+ if *flagTypes != "" {
+ flagArgs = append(flagArgs, "-type="+*flagTypes)
+ }
+ if *flagOutput != "" {
+ flagArgs = append(flagArgs, "-output="+*flagOutput)
+ }
+ if *flagBuildTags != "" {
+ flagArgs = append(flagArgs, "-tags="+*flagBuildTags)
+ }
+ if *flagCloneFunc {
+ flagArgs = append(flagArgs, "-clonefunc")
+ }
+ fmt.Fprintf(contents, header, strings.Join(flagArgs, " "), pkg.Name)
fmt.Fprintf(contents, "import (\n")
for s := range imports {
fmt.Fprintf(contents, "\t%q\n", s)
@@ -117,8 +130,8 @@ func main() {
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
-// Code generated by the following command; DO NOT EDIT.
-// tailscale.com/cmd/cloner -type %s
+// Code generated by tailscale.com/cmd/cloner; DO NOT EDIT.
+//go:generate go run tailscale.com/cmd/cloner %s
package %s
