Remove dependency of go-bindata (#818)

* Use new embed functionality for serving UI assets

* Use new embed functionality for serving resources. Remove dependency on go-bindata

* Remove Go 1.15
This commit is contained in:
Deluan Quintão
2021-03-12 11:06:51 -05:00
committed by GitHub
parent 5a259ef3ff
commit 2d528bbc87
22 changed files with 60 additions and 150 deletions
+3 -3
View File
@@ -10,12 +10,12 @@ import (
"github.com/go-chi/chi"
"github.com/go-chi/httprate"
"github.com/go-chi/jwtauth"
"github.com/navidrome/navidrome/assets"
"github.com/navidrome/navidrome/conf"
"github.com/navidrome/navidrome/core/auth"
"github.com/navidrome/navidrome/log"
"github.com/navidrome/navidrome/model"
"github.com/navidrome/navidrome/server/events"
"github.com/navidrome/navidrome/ui"
)
type Router struct {
@@ -77,8 +77,8 @@ func (app *Router) routes(path string) http.Handler {
})
// Serve UI app assets
r.Handle("/", serveIndex(app.ds, assets.AssetFile()))
r.Handle("/*", http.StripPrefix(path, http.FileServer(assets.AssetFile())))
r.Handle("/", serveIndex(app.ds, ui.Assets()))
r.Handle("/*", http.StripPrefix(path, http.FileServer(http.FS(ui.Assets()))))
return r
}
+3 -2
View File
@@ -3,6 +3,7 @@ package app
import (
"encoding/json"
"html/template"
"io/fs"
"io/ioutil"
"net/http"
"strings"
@@ -15,7 +16,7 @@ import (
)
// Injects the config in the `index.html` template
func serveIndex(ds model.DataStore, fs http.FileSystem) http.HandlerFunc {
func serveIndex(ds model.DataStore, fs fs.FS) http.HandlerFunc {
policy := bluemonday.UGCPolicy()
return func(w http.ResponseWriter, r *http.Request) {
c, err := ds.User(r.Context()).CountAll()
@@ -61,7 +62,7 @@ func serveIndex(ds model.DataStore, fs http.FileSystem) http.HandlerFunc {
}
}
func getIndexTemplate(r *http.Request, fs http.FileSystem) (*template.Template, error) {
func getIndexTemplate(r *http.Request, fs fs.FS) (*template.Template, error) {
t := template.New("initial state")
indexHtml, err := fs.Open("index.html")
if err != nil {
+2 -2
View File
@@ -3,8 +3,8 @@ package app
import (
"encoding/json"
"fmt"
"net/http"
"net/http/httptest"
"os"
"regexp"
"strconv"
@@ -19,7 +19,7 @@ import (
var _ = Describe("serveIndex", func() {
var ds model.DataStore
mockUser := &mockedUserRepo{}
fs := http.Dir("tests/fixtures")
fs := os.DirFS("tests/fixtures")
BeforeEach(func() {
ds = &tests.MockDataStore{MockedUser: mockUser}
+1 -1
View File
@@ -31,7 +31,7 @@ var (
func newTranslationRepository(context.Context) rest.Repository {
dir := utils.NewMergeFS(
resources.AssetFile(),
http.FS(resources.Assets()),
http.Dir(filepath.Join(conf.Server.DataFolder, "resources")),
)
if err := loadTranslations(dir); err != nil {
+1 -1
View File
@@ -16,7 +16,7 @@ var _ = Describe("Translations", func() {
Describe("I18n files", func() {
var fs http.FileSystem
BeforeEach(func() {
fs = resources.AssetFile()
fs = http.FS(resources.Assets())
})
It("contains only valid json language files", func() {
dir, _ := fs.Open(consts.I18nFolder)