//go:build ignore package main import ( "os" "path/filepath" "strings" "text/template" ) const tmpl = `// Code generated by gen/gen.go — DO NOT EDIT package main import ( {{- range .}} _ "{{.}}" {{- end}} ) ` func main() { var packages []string moduleName := "bdgrp_go" filepath.WalkDir("routes", func(path string, d os.DirEntry, err error) error { if err != nil || d.IsDir() { return nil } if !strings.HasSuffix(d.Name(), ".go") { return nil } pkg := moduleName + "/" + filepath.ToSlash(filepath.Dir(path)) for _, p := range packages { if p == pkg { return nil } } packages = append(packages, pkg) return nil }) f, _ := os.Create("routes_gen.go") defer f.Close() template.Must(template.New("").Parse(tmpl)).Execute(f, packages) }