From 227c316cb0e1c97cc4c5b634dd64a94d02fb2090 Mon Sep 17 00:00:00 2001 From: Lea Anthony Date: Sun, 5 Sep 2021 22:40:52 +1000 Subject: [PATCH] [v2] Extract asset path calculation --- .../assetserver/assetserver_desktop.go | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/v2/internal/frontend/assetserver/assetserver_desktop.go b/v2/internal/frontend/assetserver/assetserver_desktop.go index 36d6c77d..5954899e 100644 --- a/v2/internal/frontend/assetserver/assetserver_desktop.go +++ b/v2/internal/frontend/assetserver/assetserver_desktop.go @@ -58,19 +58,13 @@ func (d *DesktopAssetServer) SetAssetDir(assetdir string) { d.assetdir = assetdir } -func processAssets(assets embed.FS) (debme.Debme, error) { - - result, err := debme.FS(assets, ".") - if err != nil { - return result, err - } - // Find index.html +func PathToIndexHTML(assets embed.FS) (string, error) { stat, err := fs.Stat(assets, "index.html") if stat != nil { - return debme.FS(assets, ".") + return ".", nil } var indexFiles slicer.StringSlicer - err = fs.WalkDir(result, ".", func(path string, d fs.DirEntry, err error) error { + err = fs.WalkDir(assets, ".", func(path string, d fs.DirEntry, err error) error { if err != nil { return err } @@ -80,14 +74,28 @@ func processAssets(assets embed.FS) (debme.Debme, error) { return nil }) if err != nil { - return debme.Debme{}, err + return "", err } if indexFiles.Length() > 1 { - return debme.Debme{}, fmt.Errorf("multiple 'index.html' files found in assets") + return "", fmt.Errorf("multiple 'index.html' files found in assets") } path, _ := filepath.Split(indexFiles.AsSlice()[0]) + return path, nil +} + +func processAssets(assets embed.FS) (debme.Debme, error) { + + result, err := debme.FS(assets, ".") + if err != nil { + return result, err + } + // Find index.html + path, err := PathToIndexHTML(assets) + if err != nil { + return debme.Debme{}, err + } return debme.FS(assets, path) }