aboutsummaryrefslogtreecommitdiff
path: root/internal/handlers/templates.go
diff options
context:
space:
mode:
authorRaul Benencia <rul@kalgan.cc>2020-04-01 10:09:26 -0700
committerRaul Benencia <rul@kalgan.cc>2020-04-01 10:11:46 -0700
commit5f2ba83e131c5a67f979abb909fecb59651c44ac (patch)
tree0acfa9bef4458aee5d04dd87535b4473c096eac4 /internal/handlers/templates.go
parenta21d894fb128e49d6ef912bbed51bfb0754223fa (diff)
Support config subdirectories
Diffstat (limited to 'internal/handlers/templates.go')
-rw-r--r--internal/handlers/templates.go14
1 files changed, 11 insertions, 3 deletions
diff --git a/internal/handlers/templates.go b/internal/handlers/templates.go
index df1bc58..676812f 100644
--- a/internal/handlers/templates.go
+++ b/internal/handlers/templates.go
@@ -18,16 +18,19 @@ import (
"encoding/json"
"io"
"net/http"
+ "path/filepath"
- "github.com/gorilla/mux"
"github.com/thousandeyes/shoelaces/internal/utils"
)
+// TemplateHandler handles templated config files
+type TemplateHandler struct{}
+
// TemplateHandler is the dynamic configuration provider endpoint. It
// receives a key and maybe an environment.
-func TemplateHandler(w http.ResponseWriter, r *http.Request) {
+func (t *TemplateHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
variablesMap := map[string]interface{}{}
- configName := mux.Vars(r)["key"]
+ configName := filepath.Clean(r.URL.Path)
if configName == "" {
http.Error(w, "No template name provided", http.StatusNotFound)
@@ -50,6 +53,11 @@ func TemplateHandler(w http.ResponseWriter, r *http.Request) {
}
}
+// TemplateHandler returns a TemplateHandler instance implementing http.Handler
+func TemplateServer() *TemplateHandler {
+ return &TemplateHandler{}
+}
+
// GetTemplateParams receives a script name and returns the parameters
// required for completing that template.
func GetTemplateParams(w http.ResponseWriter, r *http.Request) {
nihil fit ex nihilo