aboutsummaryrefslogtreecommitdiff
path: root/gen/directives_generate.go
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2017-02-14 19:23:18 +0000
committerGravatar GitHub <noreply@github.com> 2017-02-14 19:23:18 +0000
commit98c86f3f9fb2abcf9adcae5fd94dd6e3d65eca0b (patch)
tree3dbe155921f88583fbfed34824c4eec4d877aeb3 /gen/directives_generate.go
parenta5f3cb5fe542f792bd8289daa5fffb6137b81999 (diff)
downloadcoredns-98c86f3f9fb2abcf9adcae5fd94dd6e3d65eca0b.tar.gz
coredns-98c86f3f9fb2abcf9adcae5fd94dd6e3d65eca0b.tar.zst
coredns-98c86f3f9fb2abcf9adcae5fd94dd6e3d65eca0b.zip
go gen improvements (#524)
Remove the "gen" directory and move directives_generate.go out of it. Add a build ignore tag so it isn't build by default. Cleanup the go gen invocations so there are not seen as package docs. Simplify the code a bit and don't run go gen twice.
Diffstat (limited to 'gen/directives_generate.go')
-rw-r--r--gen/directives_generate.go116
1 files changed, 0 insertions, 116 deletions
diff --git a/gen/directives_generate.go b/gen/directives_generate.go
deleted file mode 100644
index 5cd8eccd2..000000000
--- a/gen/directives_generate.go
+++ /dev/null
@@ -1,116 +0,0 @@
-package main
-
-import (
- "bufio"
- "io/ioutil"
- "os"
- "sort"
- "strconv"
- "strings"
-)
-
-var middlewarePath = "github.com/miekg/coredns/middleware/"
-var header = "// generated by directives_generate.go; DO NOT EDIT\n"
-
-func main() {
- mwFile := os.Args[1]
-
- mi := make(map[string]string, 0)
- md := make(map[int]string, 0)
-
- if file, err := os.Open(mwFile); err == nil {
- defer file.Close()
-
- scanner := bufio.NewScanner(file)
- for scanner.Scan() {
- line := scanner.Text()
- if !strings.HasPrefix(line, `//`) && !strings.HasPrefix(line, "#") {
- items := strings.Split(line, ":")
- if len(items) == 3 {
- if priority, err := strconv.Atoi(items[0]); err == nil {
- md[priority] = items[1]
- }
-
- if items[2] != "" {
- if strings.Contains(items[2], "/") {
- mi[items[1]] = items[2]
- } else {
- mi[items[1]] = middlewarePath + items[2]
- }
- }
-
- }
- }
- }
-
- var orders []int
- for k := range md {
- orders = append(orders, k)
- }
- sort.Ints(orders)
-
- if os.Getenv("GOPACKAGE") == "core" {
- genImports("zmiddleware.go", mi)
- }
- if os.Getenv("GOPACKAGE") == "dnsserver" {
- genDirectives("zdirectives.go", md)
- }
-
- } else {
- os.Exit(1)
- }
- os.Exit(0)
-
-}
-
-func genImports(file string, mi map[string]string) {
- outs := header + "package " + os.Getenv("GOPACKAGE") + "\n\n" + "import ("
-
- if len(mi) > 0 {
- outs += "\n"
- }
-
- for _, v := range mi {
- outs += " _ \"" + v + "\"\n"
- }
- outs += ")\n"
-
- err := ioutil.WriteFile(file, []byte(outs), 0644)
- if err != nil {
- os.Exit(1)
- }
-
-}
-
-func genDirectives(file string, md map[int]string) {
-
- outs := header + "package " + os.Getenv("GOPACKAGE") + "\n\n"
- outs += `
-// Directives are registered in the order they should be
-// executed.
-//
-// Ordering is VERY important. Every middleware will
-// feel the effects of all other middleware below
-// (after) them during a request, but they must not
-// care what middleware above them are doing.
-
-var directives = []string{
-`
-
- var orders []int
- for k := range md {
- orders = append(orders, k)
- }
- sort.Ints(orders)
-
- for _, k := range orders {
- outs += " \"" + md[k] + "\",\n"
- }
-
- outs += "}\n"
-
- err := ioutil.WriteFile(file, []byte(outs), 0644)
- if err != nil {
- os.Exit(1)
- }
-}