Embed the static files.

This commit is contained in:
A. Svensson 2016-05-03 18:48:32 +02:00
parent b740896359
commit acc9175b07
3 changed files with 145 additions and 2 deletions

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,48 @@
// +build !embed
// Automagically generated by yaber v0.2 (https://github.com/lmas/yaber),
// please avoid editting this file as it might be regenerated again.
package assetstatic
import (
"io/ioutil"
"path/filepath"
)
func Asset(path string) ([]byte, error) {
return ioutil.ReadFile(path)
}
func AssetDir(dir string) (map[string][]byte, error) {
list := make(map[string][]byte)
dirs := []string{dir}
for len(dirs) > 0 {
d := dirs[0]
dirs = dirs[1:]
files, e := ioutil.ReadDir(d)
if e != nil {
return nil, e
}
for _, f := range files {
fpath := filepath.Join(d, f.Name())
if f.IsDir() {
dirs = append(dirs, fpath)
continue
}
if !f.Mode().IsRegular() {
continue
}
fbody, e := ioutil.ReadFile(fpath)
if e != nil {
return nil, e
}
list[fpath] = fbody
}
}
return list, nil
}

View File

@ -1,13 +1,16 @@
package ss13 package ss13
import ( import (
"fmt"
"html/template" "html/template"
"mime"
"net/http" "net/http"
"path/filepath" "path/filepath"
"strconv" "strconv"
"time" "time"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/lmas/ss13_se/src/assetstatic"
"github.com/lmas/ss13_se/src/assettemplates" "github.com/lmas/ss13_se/src/assettemplates"
) )
@ -55,9 +58,22 @@ func (i *Instance) Serve(addr string) error {
} }
i.router.SetHTMLTemplate(tmpl) i.router.SetHTMLTemplate(tmpl)
// Setup all URLS // Load static files
i.router.Static("/static", "./static") staticfiles, e := assetstatic.AssetDir("static/")
if e != nil {
panic(e)
}
for p, _ := range staticfiles {
ctype := mime.TypeByExtension(filepath.Ext(p))
// Need to make a local copy of the var or else all files will
// return the content of a single file (quirk with range).
b := staticfiles[p]
i.router.GET(fmt.Sprintf("/%s", p), func(c *gin.Context) {
c.Data(http.StatusOK, ctype, b)
})
}
// Setup all URLS
i.router.GET("/", i.page_index) i.router.GET("/", i.page_index)
i.router.GET("/server/:server_id/*slug", i.page_server) i.router.GET("/server/:server_id/*slug", i.page_server)