|
|
@ -6,6 +6,7 @@ package codegen
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
import (
|
|
|
|
"bytes"
|
|
|
|
"bytes"
|
|
|
|
|
|
|
|
"flag"
|
|
|
|
"fmt"
|
|
|
|
"fmt"
|
|
|
|
"go/ast"
|
|
|
|
"go/ast"
|
|
|
|
"go/token"
|
|
|
|
"go/token"
|
|
|
@ -20,6 +21,8 @@ import (
|
|
|
|
"tailscale.com/util/mak"
|
|
|
|
"tailscale.com/util/mak"
|
|
|
|
)
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var flagCopyright = flag.Bool("copyright", true, "add Tailscale copyright to generated file headers")
|
|
|
|
|
|
|
|
|
|
|
|
// LoadTypes returns all named types in pkgName, keyed by their type name.
|
|
|
|
// LoadTypes returns all named types in pkgName, keyed by their type name.
|
|
|
|
func LoadTypes(buildTags string, pkgName string) (*packages.Package, map[string]*types.Named, error) {
|
|
|
|
func LoadTypes(buildTags string, pkgName string) (*packages.Package, map[string]*types.Named, error) {
|
|
|
|
cfg := &packages.Config{
|
|
|
|
cfg := &packages.Config{
|
|
|
@ -104,7 +107,9 @@ func (it *ImportTracker) Write(w io.Writer) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func writeHeader(w io.Writer, tool, pkg string) {
|
|
|
|
func writeHeader(w io.Writer, tool, pkg string) {
|
|
|
|
fmt.Fprint(w, copyrightHeader)
|
|
|
|
if *flagCopyright {
|
|
|
|
|
|
|
|
fmt.Fprint(w, copyrightHeader)
|
|
|
|
|
|
|
|
}
|
|
|
|
fmt.Fprintf(w, genAndPackageHeader, tool, pkg)
|
|
|
|
fmt.Fprintf(w, genAndPackageHeader, tool, pkg)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|