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"
|
outs += "\n"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
coreDnsImports := ""
|
||||||
|
thirdPartyImports := ""
|
||||||
|
|
||||||
outs += "// Include all plugins.\n"
|
outs += "// Include all plugins.\n"
|
||||||
for _, v := range mi {
|
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"
|
outs += ")\n"
|
||||||
|
|
||||||
if err := formatAndWrite(file, outs); err != nil {
|
if err := formatAndWrite(file, outs); err != nil {
|
||||||
|
@ -107,7 +119,8 @@ func formatAndWrite(file string, data string) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
pluginPath = "github.com/coredns/coredns/plugin/"
|
githubOrg = "github.com/coredns"
|
||||||
|
pluginPath = githubOrg + "/coredns/plugin/"
|
||||||
pluginFile = "plugin.cfg"
|
pluginFile = "plugin.cfg"
|
||||||
pluginFSPath = "plugin/" // Where the plugins are located on the file system
|
pluginFSPath = "plugin/" // Where the plugins are located on the file system
|
||||||
header = "// generated by directives_generate.go; DO NOT EDIT\n\n"
|
header = "// generated by directives_generate.go; DO NOT EDIT\n\n"
|
||||||
|
|
Loading…
Add table
Reference in a new issue