From 4c0edd6374f73ef5e8ceae9a7490fc950f71ae7a Mon Sep 17 00:00:00 2001 From: Simone Gotti Date: Thu, 21 Feb 2019 16:08:02 +0100 Subject: [PATCH] Add webbundle implementation --- Makefile | 22 ++++++++++++++- webbundle/emptybindata.go | 58 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 webbundle/emptybindata.go diff --git a/Makefile b/Makefile index b8c9cb8..bc5bf92 100644 --- a/Makefile +++ b/Makefile @@ -16,6 +16,19 @@ $(shell mkdir -p tools/bin ) AGOLA_TAGS = sqlite_unlock_notify +AGOLA_WEBBUNDLE_DEPS = webbundle/bindata.go +AGOLA_WEBBUNDLE_TAGS = webbundle + +ifdef WEBBUNDLE + +ifndef WEBDISTPATH +$(error WEBDISTPATH must be provided when building the webbundle) +endif + +AGOLA_DEPS = $(AGOLA_WEBBUNDLE_DEPS) +AGOLA_TAGS += $(AGOLA_WEBBUNDLE_TAGS) +endif + .PHONY: all all: build @@ -28,7 +41,7 @@ test: tools/bin/gocovmerge # don't use existing file names and track go sources, let's do this to the go tool .PHONY: bin/agola -bin/agola: +bin/agola: $(AGOLA_DEPS) GO111MODULE=on go build $(if $(AGOLA_TAGS),-tags "$(AGOLA_TAGS)") -ldflags $(LD_FLAGS) -o $(PROJDIR)/bin/agola $(REPO_PATH)/cmd/agola # toolbox MUST be statically compiled so it can be used in any image for that arch @@ -37,6 +50,13 @@ bin/agola: bin/agola-toolbox: CGO_ENABLED=0 GO111MODULE=on go build $(if $(AGOLA_TAGS),-tags "$(AGOLA_TAGS)") -ldflags $(LD_FLAGS) -o $(PROJDIR)/bin/agola-toolbox $(REPO_PATH)/cmd/toolbox +.PHONY: tools/bin/go-bindata +tools/bin/go-bindata: + GOBIN=$(PROJDIR)/tools/bin go install github.com/go-bindata/go-bindata/go-bindata + .PHONY: tools/bin/gocovmerge tools/bin/gocovmerge: GOBIN=$(PROJDIR)/tools/bin go install github.com/wadey/gocovmerge + +webbundle/bindata.go: tools/bin/go-bindata $(WEBDISTPATH) + ./tools/bin/go-bindata -o webbundle/bindata.go -tags webbundle -pkg webbundle -prefix "$(WEBDISTPATH)" -nocompress=true "$(WEBDISTPATH)/..." \ No newline at end of file diff --git a/webbundle/emptybindata.go b/webbundle/emptybindata.go new file mode 100644 index 0000000..44db4ed --- /dev/null +++ b/webbundle/emptybindata.go @@ -0,0 +1,58 @@ +// Copyright 2019 Sorint.lab +// +// 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. + +// +build !webbundle + +package webbundle + +import ( + "fmt" + "os" +) + +// Asset loads and returns the asset for the given name. +// It returns an error if the asset could not be found or +// could not be loaded. +func Asset(name string) ([]byte, error) { + return nil, fmt.Errorf("Asset %s not found", name) +} + +// AssetInfo loads and returns the asset info for the given name. +// It returns an error if the asset could not be found or +// could not be loaded. +func AssetInfo(name string) (os.FileInfo, error) { + return nil, fmt.Errorf("AssetInfo %s not found", name) +} + +// AssetNames returns the names of the assets. +func AssetNames() []string { + return []string{} +} + +// AssetDir returns the file names below a certain +// directory embedded in the file by go-bindata. +// For example if you run go-bindata on data/... and data contains the +// following hierarchy: +// data/ +// foo.txt +// img/ +// a.png +// b.png +// then AssetDir("data") would return []string{"foo.txt", "img"} +// AssetDir("data/img") would return []string{"a.png", "b.png"} +// AssetDir("foo.txt") and AssetDir("notexist") would return an error +// AssetDir("") will return []string{"data"}. +func AssetDir(name string) ([]string, error) { + return []string{}, nil +}