diff options
author | Raul Benencia <rul@kalgan.cc> | 2020-04-01 10:09:26 -0700 |
---|---|---|
committer | Raul Benencia <rul@kalgan.cc> | 2020-04-01 10:11:46 -0700 |
commit | 5f2ba83e131c5a67f979abb909fecb59651c44ac (patch) | |
tree | 0acfa9bef4458aee5d04dd87535b4473c096eac4 /internal/handlers/templates.go | |
parent | a21d894fb128e49d6ef912bbed51bfb0754223fa (diff) |
Support config subdirectories
Diffstat (limited to 'internal/handlers/templates.go')
-rw-r--r-- | internal/handlers/templates.go | 14 |
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) { |