Commit c667d600 authored by Geoff Simmons's avatar Geoff Simmons

ACL template source is an internal variable, not an external file.

parent c1969c24
/*
* Copyright (c) 2020 UPLEX Nils Goroll Systemoptimierung
* All rights reserved
*
* Author: Geoffrey Simmons <geoffrey.simmons@uplex.de>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
package vcl
import "text/template"
const aclTmplSrc = `
import std; import std;
{{- range .ACLs}} {{- range .ACLs}}
...@@ -34,3 +66,9 @@ sub vcl_recv { ...@@ -34,3 +66,9 @@ sub vcl_recv {
{{- end}} {{- end}}
{{- end}} {{- end}}
} }
`
const aclTmplName = "acl"
var aclTmpl = template.Must(template.New(aclTmplName).Funcs(fMap).
Parse(aclTmplSrc))
...@@ -145,7 +145,6 @@ var fMap = template.FuncMap{ ...@@ -145,7 +145,6 @@ var fMap = template.FuncMap{
} }
const ( const (
aclTmplSrc = "acl.tmpl"
rewriteTmplSrc = "rewrite.tmpl" rewriteTmplSrc = "rewrite.tmpl"
reqDispTmplSrc = "recv_disposition.tmpl" reqDispTmplSrc = "recv_disposition.tmpl"
...@@ -156,7 +155,6 @@ const ( ...@@ -156,7 +155,6 @@ const (
) )
var ( var (
aclTmpl *template.Template
rewriteTmpl *template.Template rewriteTmpl *template.Template
reqDispTmpl *template.Template reqDispTmpl *template.Template
vclIllegal = regexp.MustCompile("[^[:word:]-]+") vclIllegal = regexp.MustCompile("[^[:word:]-]+")
...@@ -165,15 +163,9 @@ var ( ...@@ -165,15 +163,9 @@ var (
// InitTemplates initializes templates for VCL generation. // InitTemplates initializes templates for VCL generation.
func InitTemplates(tmplDir string) error { func InitTemplates(tmplDir string) error {
var err error var err error
aclTmplPath := path.Join(tmplDir, aclTmplSrc)
rewriteTmplPath := path.Join(tmplDir, rewriteTmplSrc) rewriteTmplPath := path.Join(tmplDir, rewriteTmplSrc)
reqDispTmplPath := path.Join(tmplDir, reqDispTmplSrc) reqDispTmplPath := path.Join(tmplDir, reqDispTmplSrc)
aclTmpl, err = template.New(aclTmplSrc).
Funcs(fMap).ParseFiles(aclTmplPath)
if err != nil {
return err
}
rewriteTmpl, err = template.New(rewriteTmplSrc). rewriteTmpl, err = template.New(rewriteTmplSrc).
Funcs(fMap).ParseFiles(rewriteTmplPath) Funcs(fMap).ParseFiles(rewriteTmplPath)
if err != nil { if err != nil {
......
...@@ -35,7 +35,6 @@ import ( ...@@ -35,7 +35,6 @@ import (
"os" "os"
"path/filepath" "path/filepath"
"testing" "testing"
"text/template"
) )
func cmpGold(got []byte, goldfile string) (bool, error) { func cmpGold(got []byte, goldfile string) (bool, error) {
...@@ -455,14 +454,8 @@ var acls = Spec{ ...@@ -455,14 +454,8 @@ var acls = Spec{
func TestAclTemplate(t *testing.T) { func TestAclTemplate(t *testing.T) {
var buf bytes.Buffer var buf bytes.Buffer
gold := "acl.golden" gold := "acl.golden"
tmplName := "acl.tmpl"
tmpl, err := template.New(tmplName).Funcs(fMap).ParseFiles(tmplName) if err := aclTmpl.Execute(&buf, acls); err != nil {
if err != nil {
t.Error("Cannot parse acl template:", err)
return
}
if err := tmpl.Execute(&buf, acls); err != nil {
t.Error("acls template Execute():", err) t.Error("acls template Execute():", err)
return return
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment