summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/GeertJohan/go.rice/rice/templates.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/GeertJohan/go.rice/rice/templates.go')
-rw-r--r--vendor/github.com/GeertJohan/go.rice/rice/templates.go98
1 files changed, 98 insertions, 0 deletions
diff --git a/vendor/github.com/GeertJohan/go.rice/rice/templates.go b/vendor/github.com/GeertJohan/go.rice/rice/templates.go
new file mode 100644
index 00000000..02561ca0
--- /dev/null
+++ b/vendor/github.com/GeertJohan/go.rice/rice/templates.go
@@ -0,0 +1,98 @@
+package main
+
+import (
+ "fmt"
+ "os"
+ "text/template"
+)
+
+var tmplEmbeddedBox *template.Template
+
+func init() {
+ var err error
+
+ // parse embedded box template
+ tmplEmbeddedBox, err = template.New("embeddedBox").Parse(`package {{.Package}}
+
+import (
+ "github.com/GeertJohan/go.rice/embedded"
+ "time"
+)
+
+{{range .Boxes}}
+func init() {
+
+ // define files
+ {{range .Files}}{{.Identifier}} := &embedded.EmbeddedFile{
+ Filename: ` + "`" + `{{.FileName}}` + "`" + `,
+ FileModTime: time.Unix({{.ModTime}}, 0),
+ Content: string({{.Content | printf "%q"}}),
+ }
+ {{end}}
+
+ // define dirs
+ {{range .Dirs}}{{.Identifier}} := &embedded.EmbeddedDir{
+ Filename: ` + "`" + `{{.FileName}}` + "`" + `,
+ DirModTime: time.Unix({{.ModTime}}, 0),
+ ChildFiles: []*embedded.EmbeddedFile{
+ {{range .ChildFiles}}{{.Identifier}}, // {{.FileName}}
+ {{end}}
+ },
+ }
+ {{end}}
+
+ // link ChildDirs
+ {{range .Dirs}}{{.Identifier}}.ChildDirs = []*embedded.EmbeddedDir{
+ {{range .ChildDirs}}{{.Identifier}}, // {{.FileName}}
+ {{end}}
+ }
+ {{end}}
+
+ // register embeddedBox
+ embedded.RegisterEmbeddedBox(` + "`" + `{{.BoxName}}` + "`" + `, &embedded.EmbeddedBox{
+ Name: ` + "`" + `{{.BoxName}}` + "`" + `,
+ Time: time.Unix({{.UnixNow}}, 0),
+ Dirs: map[string]*embedded.EmbeddedDir{
+ {{range .Dirs}}"{{.FileName}}": {{.Identifier}},
+ {{end}}
+ },
+ Files: map[string]*embedded.EmbeddedFile{
+ {{range .Files}}"{{.FileName}}": {{.Identifier}},
+ {{end}}
+ },
+ })
+}
+{{end}}`)
+ if err != nil {
+ fmt.Printf("error parsing embedded box template: %s\n", err)
+ os.Exit(-1)
+ }
+}
+
+type embedFileDataType struct {
+ Package string
+ Boxes []*boxDataType
+}
+
+type boxDataType struct {
+ BoxName string
+ UnixNow int64
+ Files []*fileDataType
+ Dirs map[string]*dirDataType
+}
+
+type fileDataType struct {
+ Identifier string
+ FileName string
+ Content []byte
+ ModTime int64
+}
+
+type dirDataType struct {
+ Identifier string
+ FileName string
+ Content []byte
+ ModTime int64
+ ChildDirs []*dirDataType
+ ChildFiles []*fileDataType
+}