mirror of
https://github.com/syncthing/syncthing.git
synced 2024-11-16 02:18:44 -07:00
47 lines
784 B
Go
47 lines
784 B
Go
//+build !guidev
|
|
|
|
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"mime"
|
|
"net/http"
|
|
"path/filepath"
|
|
"time"
|
|
|
|
"github.com/calmh/syncthing/auto"
|
|
"github.com/cratonica/embed"
|
|
)
|
|
|
|
func embeddedStatic() interface{} {
|
|
fs, err := embed.Unpack(auto.Resources)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
var modt = time.Now().UTC().Format(http.TimeFormat)
|
|
|
|
return func(res http.ResponseWriter, req *http.Request, log *log.Logger) {
|
|
file := req.URL.Path
|
|
|
|
if file[0] == '/' {
|
|
file = file[1:]
|
|
}
|
|
|
|
bs, ok := fs[file]
|
|
if !ok {
|
|
return
|
|
}
|
|
|
|
mtype := mime.TypeByExtension(filepath.Ext(req.URL.Path))
|
|
if len(mtype) != 0 {
|
|
res.Header().Set("Content-Type", mtype)
|
|
}
|
|
res.Header().Set("Content-Size", fmt.Sprintf("%d", len(bs)))
|
|
res.Header().Set("Last-Modified", modt)
|
|
|
|
res.Write(bs)
|
|
}
|
|
}
|