Generate zplugin.go correctly with third-party plugins (#6692)
Previously, the generation of zplugin.go would not separate third-party external plugins from CoreDNS plugins in the go import block. This leads to the TestImportOrdering unit test failing, as it requires that third-party imports paths to be in a separate import block. While this issue does not affect the main CoreDNS repo, it can cause unit test failures in forks of CoreDNS that include external third-party plugins. Signed-off-by: Grant Spence <gspence@redhat.com>
This commit is contained in:
parent
621ffde538
commit
0ed689e2d0
1 changed files with 15 additions and 2 deletions
|
@ -58,10 +58,22 @@ func genImports(file, pack string, mi map[string]string) {
|
|||
outs += "\n"
|
||||
}
|
||||
|
||||
coreDnsImports := ""
|
||||
thirdPartyImports := ""
|
||||
|
||||
outs += "// Include all plugins.\n"
|
||||
for _, v := range mi {
|
||||
outs += `_ "` + v + `"` + "\n"
|
||||
if strings.HasPrefix(v, githubOrg) {
|
||||
coreDnsImports += `_ "` + v + `"` + "\n"
|
||||
} else {
|
||||
thirdPartyImports += `_ "` + v + `"` + "\n"
|
||||
}
|
||||
}
|
||||
outs += coreDnsImports
|
||||
if thirdPartyImports != "" {
|
||||
outs += "\n" + thirdPartyImports
|
||||
}
|
||||
|
||||
outs += ")\n"
|
||||
|
||||
if err := formatAndWrite(file, outs); err != nil {
|
||||
|
@ -107,7 +119,8 @@ func formatAndWrite(file string, data string) error {
|
|||
}
|
||||
|
||||
const (
|
||||
pluginPath = "github.com/coredns/coredns/plugin/"
|
||||
githubOrg = "github.com/coredns"
|
||||
pluginPath = githubOrg + "/coredns/plugin/"
|
||||
pluginFile = "plugin.cfg"
|
||||
pluginFSPath = "plugin/" // Where the plugins are located on the file system
|
||||
header = "// generated by directives_generate.go; DO NOT EDIT\n\n"
|
||||
|
|
Loading…
Add table
Reference in a new issue