global: split Akvorado into 3 services

This commit is contained in:
Vincent Bernat
2022-04-01 20:21:53 +02:00
parent a336370c05
commit 1dc253764d
179 changed files with 1768 additions and 1263 deletions

39
console/assets.go Normal file
View File

@@ -0,0 +1,39 @@
package console
import (
"embed"
"errors"
"fmt"
"io/fs"
"net/http"
"path"
"strings"
)
//go:embed data/assets/generated data/assets/images
var embeddedAssets embed.FS
func (c *Component) assetsHandlerFunc(w http.ResponseWriter, req *http.Request) {
assets := c.embedOrLiveFS(embeddedAssets, "data/assets")
rpath := strings.TrimPrefix(req.URL.Path, "/assets/")
rpath = strings.Trim(rpath, "/")
for _, p := range []string{
fmt.Sprintf("%s", rpath),
fmt.Sprintf("generated/%s", rpath),
} {
f, err := http.FS(assets).Open(p)
if errors.Is(err, fs.ErrNotExist) {
continue
}
st, err := f.Stat()
if err != nil || st.IsDir() {
continue
}
http.ServeContent(w, req, path.Base(rpath), st.ModTime(), f)
f.Close()
return
}
http.Error(w, "Asset not found.", http.StatusNotFound)
}