diff --git a/Makefile b/Makefile index 2f2625fc88..1bf3fe35bf 100644 --- a/Makefile +++ b/Makefile @@ -57,11 +57,6 @@ assets-compress: @echo '>> compressing assets' scripts/compress_assets.sh -.PHONY: assets-decompress -assets-decompress: - @echo '>> decompressing assets' - scripts/compress_assets.sh -d - .PHONY: test # If we only want to only test go code we have to change the test target # which is called by all. @@ -84,7 +79,7 @@ tarball: npm_licenses common-tarball docker: npm_licenses common-docker .PHONY: build -build: assets assets-compress common-build assets-decompress +build: assets assets-compress common-build .PHONY: bench_tsdb bench_tsdb: $(PROMU) @@ -97,6 +92,3 @@ bench_tsdb: $(PROMU) @$(GO) tool pprof --alloc_space -svg $(PROMTOOL) $(TSDB_BENCHMARK_OUTPUT_DIR)/mem.prof > $(TSDB_BENCHMARK_OUTPUT_DIR)/memprof.alloc.svg @$(GO) tool pprof -svg $(PROMTOOL) $(TSDB_BENCHMARK_OUTPUT_DIR)/block.prof > $(TSDB_BENCHMARK_OUTPUT_DIR)/blockprof.svg @$(GO) tool pprof -svg $(PROMTOOL) $(TSDB_BENCHMARK_OUTPUT_DIR)/mutex.prof > $(TSDB_BENCHMARK_OUTPUT_DIR)/mutexprof.svg - -.PHONY: clean -clean: assets-decompress diff --git a/scripts/compress_assets.sh b/scripts/compress_assets.sh index 05d2540e3c..58486089e1 100755 --- a/scripts/compress_assets.sh +++ b/scripts/compress_assets.sh @@ -1,5 +1,11 @@ #!/usr/bin/env bash # -# [de]compress static assets +# compress static assets -find web/ui/static -type f -exec gzip "$@" {} \; +set -euo pipefail + +cd web/ui +cp embed.go.tmpl embed.go +find static -type f -name '*.gz' -delete +find static -type f -exec gzip -fk '{}' \; -print0 | xargs -0 -I % echo %.gz | xargs echo //go:embed >> embed.go +echo var EmbedFS embed.FS >> embed.go diff --git a/web/ui/.gitignore b/web/ui/.gitignore new file mode 100644 index 0000000000..4f04e905fb --- /dev/null +++ b/web/ui/.gitignore @@ -0,0 +1,2 @@ +*.gz +embed.go diff --git a/web/ui/assets_embed.go b/web/ui/assets_embed.go index 17186fd8f1..f10d5c0c23 100644 --- a/web/ui/assets_embed.go +++ b/web/ui/assets_embed.go @@ -17,12 +17,9 @@ package ui import ( - "embed" - "github.com/prometheus/common/assets" "net/http" + + "github.com/prometheus/common/assets" ) -//go:embed static -var EmbedFS embed.FS - var Assets = http.FS(assets.New(EmbedFS)) diff --git a/web/ui/embed.go.tmpl b/web/ui/embed.go.tmpl new file mode 100644 index 0000000000..1d7dbf5958 --- /dev/null +++ b/web/ui/embed.go.tmpl @@ -0,0 +1,20 @@ +// Copyright 2022 The Prometheus Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build builtinassets +// +build builtinassets + +package ui + +import "embed" +