diff --git a/Taskfile.yml b/Taskfile.yml index b30b599..33f817f 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -25,23 +25,19 @@ tasks: - go get -u forge.chapril.org/mls-361/logger - go get -u forge.chapril.org/mls-361/uuid - go mod tidy - lint: - cmds: - - golangci-lint run - test: + default: cmds: + - golangci-lint run - go test -cover -v ./... - - build: - cmds: - go build -ldflags "{{.LDFLAGS}}" -o $GOPATH/bin/armen ./cmd/main.go - default: + devel: cmds: - - task: lint - - task: test - - task: build + - golangci-lint run --build-tags devel + - go test -tags devel -cover -v ./... + - go build -tags devel -ldflags "{{.LDFLAGS}}" -o $GOPATH/bin/armen ./cmd/main.go + git: cmds: - git add . diff --git a/cmd/main.go b/cmd/main.go index 407dc67..07cca05 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -84,9 +84,8 @@ func buildComponents(ccs *components.Components) error { } api.Build(ccs) - gui.Build(ccs) - return nil + return gui.Build(ccs) } func waitEnd(server components.Server) (*sync.WaitGroup, chan struct{}) { diff --git a/internal/gui/devel.go b/internal/gui/devel.go new file mode 100644 index 0000000..f566e31 --- /dev/null +++ b/internal/gui/devel.go @@ -0,0 +1,22 @@ +// +build devel + +/* +------------------------------------------------------------------------------------------------------------------------ +####### gui ####### Copyright (c) 2021 mls-361 ##################################################### MIT License ####### +------------------------------------------------------------------------------------------------------------------------ +*/ + +package gui + +import ( + "net/http" + "os" +) + +func getStaticFS() (http.FileSystem, error) { + return http.FS(os.DirFS("static")), nil +} + +/* +######################################################################################################## @(°_°)@ ####### +*/ diff --git a/internal/gui/gui.go b/internal/gui/gui.go index 9e2faa0..e18bf7e 100644 --- a/internal/gui/gui.go +++ b/internal/gui/gui.go @@ -12,10 +12,15 @@ import ( "forge.chapril.org/armen/armen/internal/components" ) -func Build(ccs *components.Components) { +func Build(ccs *components.Components) error { + staticFS, err := getStaticFS() + if err != nil { + return err + } + router := ccs.Router - router.ServeFiles("/static/*filepath", http.Dir("static")) + router.ServeFiles("/static/*filepath", staticFS) router.Get("/", http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { _ = newDashboard(ccs). @@ -28,6 +33,8 @@ func Build(ccs *components.Components) { build(). Render(w) })) + + return nil } /* diff --git a/internal/gui/prod.go b/internal/gui/prod.go new file mode 100644 index 0000000..ec9a28f --- /dev/null +++ b/internal/gui/prod.go @@ -0,0 +1,31 @@ +// +build !devel + +/* +------------------------------------------------------------------------------------------------------------------------ +####### gui ####### Copyright (c) 2021 mls-361 ##################################################### MIT License ####### +------------------------------------------------------------------------------------------------------------------------ +*/ + +package gui + +import ( + "embed" + "io/fs" + "net/http" +) + +//go:embed static +var static embed.FS + +func getStaticFS() (http.FileSystem, error) { + fsys, err := fs.Sub(static, "static") + if err != nil { + return nil, err + } + + return http.FS(fsys), nil +} + +/* +######################################################################################################## @(°_°)@ ####### +*/ diff --git a/static/css/colors.css b/internal/gui/static/css/colors.css similarity index 100% rename from static/css/colors.css rename to internal/gui/static/css/colors.css diff --git a/static/css/common.css b/internal/gui/static/css/common.css similarity index 100% rename from static/css/common.css rename to internal/gui/static/css/common.css diff --git a/static/css/dashboard.css b/internal/gui/static/css/dashboard.css similarity index 100% rename from static/css/dashboard.css rename to internal/gui/static/css/dashboard.css diff --git a/static/css/normalize.css b/internal/gui/static/css/normalize.css similarity index 100% rename from static/css/normalize.css rename to internal/gui/static/css/normalize.css