diff --git a/.build/.gitignore b/.build/.gitignore deleted file mode 100644 index 936e7fe13b6a8bb7f23b34379f036a0b2a155721..0000000000000000000000000000000000000000 --- a/.build/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -build/ -root/ diff --git a/.build/Makefile b/.build/Makefile deleted file mode 100644 index 6e9533967ee4ca28f871911c5d24f0686998d9d0..0000000000000000000000000000000000000000 --- a/.build/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright 2013 Prometheus Team -# 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. - -.SUFFIXES: - -include ../Makefile.INCLUDE - -all: - -clean: - $(MAKE) -C root clean diff --git a/.build/cache/.gitignore b/.build/cache/.gitignore deleted file mode 100644 index bb541719ca38b5897dd55c2231f900bbc5e590e4..0000000000000000000000000000000000000000 --- a/.build/cache/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -*.gz -*.bz2 diff --git a/.build/root/Makefile b/.build/root/Makefile deleted file mode 100644 index d76a091065bea45a56841cb366ba1f18d3386ca7..0000000000000000000000000000000000000000 --- a/.build/root/Makefile +++ /dev/null @@ -1,22 +0,0 @@ -# Copyright 2013 Prometheus Team -# 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. - -.SUFFIXES: - -include ../../Makefile.INCLUDE - -all: - -clean: - rm -rf * - git checkout . diff --git a/.build/root/bin/.gitignore b/.build/root/bin/.gitignore deleted file mode 100644 index f59ec20aabf5842d237244ece8c81ab184faeac1..0000000000000000000000000000000000000000 --- a/.build/root/bin/.gitignore +++ /dev/null @@ -1 +0,0 @@ -* \ No newline at end of file diff --git a/.build/root/include/.gitignore b/.build/root/include/.gitignore deleted file mode 100644 index f59ec20aabf5842d237244ece8c81ab184faeac1..0000000000000000000000000000000000000000 --- a/.build/root/include/.gitignore +++ /dev/null @@ -1 +0,0 @@ -* \ No newline at end of file diff --git a/.build/root/lib/.gitignore b/.build/root/lib/.gitignore deleted file mode 100644 index f59ec20aabf5842d237244ece8c81ab184faeac1..0000000000000000000000000000000000000000 --- a/.build/root/lib/.gitignore +++ /dev/null @@ -1 +0,0 @@ -* \ No newline at end of file diff --git a/.build/root/share/.gitignore b/.build/root/share/.gitignore deleted file mode 100644 index 72e8ffc0db8aad71a934dd11e5968bd5109e54b4..0000000000000000000000000000000000000000 --- a/.build/root/share/.gitignore +++ /dev/null @@ -1 +0,0 @@ -* diff --git a/.gitignore b/.gitignore index 755efc557d31df434d5abb77d7aa6cc42551e410..207a4c604d536b93b15b0af54c0458df8c72de7f 100644 --- a/.gitignore +++ b/.gitignore @@ -33,6 +33,7 @@ core /promtool benchmark.txt /data +/.build .#* command-line-arguments.test diff --git a/Dockerfile b/Dockerfile index 2179ff2099ffd47fbef8315c6f6ba5a8da79aa82..bafe497af3ab0485e401e74d1eea1c5b80de3c8b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,17 +1,18 @@ FROM sdurrheimer/alpine-glibc MAINTAINER The Prometheus Authors -WORKDIR /app -COPY . /app +WORKDIR /gopath/src/github.com/prometheus/prometheus +COPY . /gopath/src/github.com/prometheus/prometheus -RUN apk add --update -t build-deps git mercurial bzr make \ +RUN apk add --update -t build-deps tar openssl git make bash \ + && source ./scripts/goenv.sh /go /gopath \ && make build \ && cp prometheus promtool /bin/ \ && mkdir -p /etc/prometheus \ && mv ./documentation/examples/prometheus.yml /etc/prometheus/prometheus.yml \ && mv ./console_libraries/ ./consoles/ /etc/prometheus/ \ && apk del --purge build-deps \ - && rm -rf /app /var/cache/apk/* + && rm -rf /go /gopath /var/cache/apk/* EXPOSE 9090 VOLUME [ "/prometheus" ] diff --git a/Makefile b/Makefile index 7ee0460e50bf335f29e8287222d8fe8ed6f35d65..5a5f0b7d5c45ec245144f420f80a6d0a40941f7f 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -# Copyright 2013 The Prometheus Authors +# Copyright 2015 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 @@ -11,86 +11,33 @@ # See the License for the specific language governing permissions and # limitations under the License. -TEST_ARTIFACTS = prometheus prometheus.race search_index +GO := GO15VENDOREXPERIMENT=1 go +pkgs = $(shell $(GO) list ./... | grep -v /vendor/) -include Makefile.INCLUDE +all: format build test -all: binary test +test: + @echo ">> running tests" + @$(GO) test -short $(pkgs) -$(GOCC): $(BUILD_PATH)/cache/$(GOPKG) - tar -C $(BUILD_PATH)/root -xzf $< - touch $@ +format: + @echo ">> formatting code" + @$(GO) fmt $(pkgs) -advice: $(GOCC) - $(GO) vet ./... +vet: + @echo ">> vetting code" + @$(GO) vet $(pkgs) -binary: build - -build: dependencies $(GOPATH) - $(GO) build -o prometheus $(BUILDFLAGS) github.com/prometheus/prometheus/cmd/prometheus - $(GO) build -o promtool $(BUILDFLAGS) github.com/prometheus/prometheus/cmd/promtool +build: + @echo ">> building binaries" + @./scripts/build.sh docker: - docker build -t prometheus:$(REV) . - -tarball: $(ARCHIVE) - -$(GOPATH): - mkdir -p $(GOPATH) - cp -a $(MAKEFILE_DIR)/vendor/ $(GOPATH)/src - -$(ARCHIVE): build - mkdir -p $(ARCHIVEDIR) - cp -a prometheus promtool consoles console_libraries $(ARCHIVEDIR) - tar -czf $(ARCHIVE) $(ARCHIVEDIR) - rm -rf $(ARCHIVEDIR) - -release: REMOTE ?= $(error "can't upload, REMOTE not set") -release: REMOTE_DIR ?= $(error "can't upload, REMOTE_DIR not set") -release: $(ARCHIVE) - scp $< $(REMOTE):$(REMOTE_DIR)/ - -tag: - git tag $(VERSION) - git push --tags - -$(BUILD_PATH)/cache/$(GOPKG): - $(CURL) -o $@ -L $(GOURL)/$(GOPKG) - -benchmark: dependencies - $(GO) test $(GO_TEST_FLAGS) -test.run='NONE' -test.bench='.*' -test.benchmem ./... | tee benchmark.txt - -clean: - $(MAKE) -C $(BUILD_PATH) clean - rm -rf $(TEST_ARTIFACTS) - -rm $(ARCHIVE) - -find . -type f -name '*~' -exec rm '{}' ';' - -find . -type f -name '*#' -exec rm '{}' ';' - -find . -type f -name '.#*' -exec rm '{}' ';' - -$(SELFLINK): $(GOPATH) - mkdir -p `dirname $@` - ln -s $(MAKEFILE_DIR) $@ - -dependencies: $(GOCC) | $(SELFLINK) - -documentation: search_index - godoc -http=:6060 -index -index_files='search_index' - -format: dependencies - find . -iname '*.go' | egrep -v "^\./(\.build|vendor)/" | xargs -n1 $(GOFMT) -w -s=true - -race_condition_binary: build - $(GO) build -race -o prometheus.race $(BUILDFLAGS) github.com/prometheus/prometheus/cmd/prometheus - $(GO) build -race -o promtool.race $(BUILDFLAGS) github.com/prometheus/prometheus/cmd/promtool - -search_index: - godoc -index -write_index -index_files='search_index' + @docker build -t prometheus:$(shell git rev-parse --short HEAD) . -test: dependencies - $(GO) test $(GO_TEST_FLAGS) ./... +assets: + @$(GO) get github.com/jteeuwen/go-bindata/... + @$(GO) generate ./web/blob -web: dependencies - $(MAKE) -C web -.PHONY: advice binary build clean dependencies documentation format race_condition_binary race_condition_run release run search_index tag tarball test +.PHONY: format build test vet docker assets diff --git a/Makefile.INCLUDE b/Makefile.INCLUDE deleted file mode 100644 index e624ec6298c0d33efacb1972902b89d65a1f5d2a..0000000000000000000000000000000000000000 --- a/Makefile.INCLUDE +++ /dev/null @@ -1,74 +0,0 @@ -# -*- Mode: makefile -*- - -# Copyright 2013 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. - -.SUFFIXES: - -current_dir := $(patsubst %/,%, $(dir $(abspath $(lastword $(MAKEFILE_LIST))))) - -VERSION=$(shell cat $(current_dir)/version/VERSION) - -OS=$(shell uname) -ARCH=$(shell uname -m) - -# The release engineers apparently need to key their binary artifacts to the -# Mac OS X release family. -MAC_OS_X_VERSION ?= 10.8 - -MAKEFILE_DIR ?= $(realpath $(dir $(lastword $(MAKEFILE_LIST)))) - -BUILD_PATH = $(MAKEFILE_DIR)/.build - -GO_VERSION := 1.5.1 -GOOS ?= $(subst Darwin,darwin,$(subst Linux,linux,$(subst FreeBSD,freebsd,$(OS)))) - -# Never honor GOBIN, should it be set at all. -unexport GOBIN - -GOARCH ?= $(subst x86_64,amd64,$(patsubst i%86,386,$(ARCH))) -GOPKG ?= go$(GO_VERSION).$(GOOS)-$(GOARCH)$(RELEASE_SUFFIX).tar.gz -GOURL ?= https://golang.org/dl -GOROOT = $(BUILD_PATH)/root/go -GOPATH = $(BUILD_PATH)/root/gopath -GOCC = $(GOROOT)/bin/go -TMPDIR = /tmp -GOENV = TMPDIR=$(TMPDIR) GOROOT=$(GOROOT) GOPATH=$(GOPATH) -GO = $(GOENV) $(GOCC) -GOFMT = $(GOROOT)/bin/gofmt - -UNAME := $(shell uname) -REPO_PATH = github.com/prometheus/prometheus -SELFLINK = $(GOPATH)/src/$(REPO_PATH) - -export PREFIX=$(BUILD_PATH)/root - -export PATH := $(GOPATH)/bin:$(GOROOT)/bin:$(PATH) - -export GO_TEST_FLAGS ?= -short - -REV := $(shell git rev-parse --short HEAD 2> /dev/null || echo 'unknown') -BRANCH := $(shell git rev-parse --abbrev-ref HEAD 2> /dev/null || echo 'unknown') -HOSTNAME := $(shell hostname -f) -BUILD_DATE := $(shell date +%Y%m%d-%H:%M:%S) -BUILDFLAGS := -ldflags \ - " -X $(REPO_PATH)/version.Version=$(VERSION)\ - -X $(REPO_PATH)/version.Revision=$(REV)\ - -X $(REPO_PATH)/version.Branch=$(BRANCH)\ - -X $(REPO_PATH)/version.BuildUser=$(USER)@$(HOSTNAME)\ - -X $(REPO_PATH)/version.BuildDate=$(BUILD_DATE)\ - -X $(REPO_PATH)/version.GoVersion=$(GO_VERSION)" -CURL := curl - -ARCHIVEDIR := prometheus-$(VERSION).$(GOOS)-$(GOARCH) -ARCHIVE := $(ARCHIVEDIR).tar.gz diff --git a/README.md b/README.md index ce1a0726b75435d93e681f48344e2b619608452b..4de9e6f41a911780638d72f65247946851548893 100644 --- a/README.md +++ b/README.md @@ -33,44 +33,34 @@ is the recommended way of installing Prometheus. Debian and RPM packages are being worked on. -### Use `make` +### Building from source -Clone the repository in the usual way with `git clone`. (If you -download and unpack the source archives provided by GitHub instead of -using `git clone`, you need to set an environment variable `VERSION` -to make the below work. See -[issue #609](https://github.com/prometheus/prometheus/issues/609) for -context.) +To build Prometheus from the source code yourself you need to have a working +Go environment with [version 1.5 or greater installed](http://golang.org/doc/install). -In most circumstances, the following should work: +You can directly use the `go` tool to download and install the `prometheus` +and `promtool` binaries into your `GOPATH`: - $ make build - $ ./prometheus -config.file=documentation/examples/prometheus.yml + $ go get github.com/prometheus/prometheus/... + $ prometheus -config.file=your_config.yml -The above requires a number of common tools to be installed, namely -`curl`, `git`, `gzip`, `hg` (Mercurial CLI). +You can also clone the repository yourself and build using `make`: -Everything else will be downloaded and installed into a staging -environment in the `.build` sub-directory. That includes a Go -development environment of the appropriate version. + $ mkdir -p $GOPATH/src/github.com/prometheus + $ cd $GOPATH/src/github.com/prometheus + $ git clone https://github.com/prometheus/prometheus.git + $ cd prometheus + $ make + $ ./prometheus -config.file=your_config.yml -The `Makefile` offers a number of useful targets. Some examples: +The Makefile provides several targets: -* `make test` runs tests. -* `make tarball` creates a tarball with the binary for distribution. -* `make race_condition_run` compiles and runs a binary with the race detector enabled. To pass arguments when running Prometheus this way, set the `ARGUMENTS` environment variable (e.g. `ARGUMENTS="-config.file=./prometheus.conf" make race_condition_run`). - -### Use your own Go development environment - -Using your own Go development environment with the usual tooling is -possible, too. After making changes to the files in `web/static` you -have to run `make` in the `web/` directory. This generates the respective -`web/blob/files.go` file which embedds the static assets in the compiled binary. - -Furthermore, the version information (see `version/info.go`) will not be -populated if you simply run `go build`. You have to pass in command -line flags as defined in `Makefile.INCLUDE` (see `${BUILDFLAGS}`) to -do that. + * *build*: build the `prometheus` and `promtool` binaries + * *test*: run the tests + * *format*: format the source code + * *vet*: check the source code for common errors + * *assets*: rebuild the static assets + * *docker*: build a docker container for the current `HEAD` ## More information diff --git a/scripts/build.sh b/scripts/build.sh new file mode 100755 index 0000000000000000000000000000000000000000..e617b80ad66c74324326add197d9d21ccbc00a1f --- /dev/null +++ b/scripts/build.sh @@ -0,0 +1,46 @@ +#!/usr/bin/env bash + +# Copyright 2015 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. + +set -e + +repo_path="github.com/prometheus/prometheus" + +version=$( cat version/VERSION ) +revision=$( git rev-parse --short HEAD 2> /dev/null || echo 'unknown' ) +branch=$( git rev-parse --abbrev-ref HEAD 2> /dev/null || echo 'unknown' ) +host=$( hostname -f ) +build_date=$( date +%Y%m%d-%H:%M:%S ) + +if [ "$(go env GOOS)" = "windows" ]; then + ext=".exe" +fi + +ldflags=" + -X ${repo_path}/version.Version=${version} + -X ${repo_path}/version.Revision=${revision} + -X ${repo_path}/version.Branch=${branch} + -X ${repo_path}/version.BuildUser=${USER}@${host} + -X ${repo_path}/version.BuildDate=${build_date} + -X ${repo_path}/version.GoVersion=${go_version}" + +export GO15VENDOREXPERIMENT="1" + +echo " > prometheus" +go build -ldflags "${ldflags}" -o prometheus${ext} ${repo_path}/cmd/prometheus + +echo " > promtool" +go build -ldflags "${ldflags}" -o promtool${ext} ${repo_path}/cmd/promtool + +exit 0 diff --git a/scripts/goenv.sh b/scripts/goenv.sh new file mode 100755 index 0000000000000000000000000000000000000000..801bcdfa5a40a10408f605570b6204e9bb1259ef --- /dev/null +++ b/scripts/goenv.sh @@ -0,0 +1,50 @@ +# Copyright 2015 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. + +goroot="$1" +gopath="$2" + +go_version_min="1.5" +go_version_install="1.5.1" + +vernum() { + printf "%03d%03d%03d" $(echo "$1" | tr '.' ' ') +} + +if command -v "go" >/dev/null; then + go_version=$(go version | sed -e 's/^[^0-9.]*\([0-9.]*\).*/\1/') +fi + +# If we satisfy the version requirement, there is nothing to do. Otherwise +# proceed downloading and installing a go environment. +if [ $(vernum ${go_version}) -ge $(vernum ${go_version_min}) ]; then + return +fi + +export GOPATH="${gopath}" +export GOROOT="${goroot}/${go_version_install}" + +export PATH="$PATH:$GOROOT/bin" + +if [ ! -x "${GOROOT}/bin/go" ]; then + + mkdir -p "${GOROOT}" + + os=$(uname | tr A-Z a-z) + arch=$(uname -m | sed -e 's/x86_64/amd64/' | sed -e 's/i.86/386/') + + url="https://golang.org/dl" + tarball="go${go_version_install}.${os}-${arch}.tar.gz" + + wget -qO- "${url}/${tarball}" | tar -C "${GOROOT}" --strip 1 -xz +fi diff --git a/web/.gitignore b/web/.gitignore deleted file mode 100644 index 1bd504a7c62bf9d3a8f8354b9e4e7cbf2df9e0c5..0000000000000000000000000000000000000000 --- a/web/.gitignore +++ /dev/null @@ -1 +0,0 @@ -static/generated diff --git a/web/Makefile b/web/Makefile deleted file mode 100644 index 9399b300937804fb5d7e3c5346a0f89cbc92882f..0000000000000000000000000000000000000000 --- a/web/Makefile +++ /dev/null @@ -1,27 +0,0 @@ -# Copyright 2013 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. - -include ../Makefile.INCLUDE - -all: blob/files.go - -SUFFIXES: - -blob/files.go: go-bindata $(shell find blob/templates/ blob/static/ -type f) - $(GO) generate ./blob - $(GOFMT) -w -s=true blob/files.go - -go-bindata: - $(GO) get github.com/jteeuwen/go-bindata/... - -.PHONY: go-bindata diff --git a/web/blob/files.go b/web/blob/files.go index 24f14a8e60ba33d6959f58061bc05b22a420d1b1..6bd1d3653f240df6672309c47a2e5fbccfb5ad83 100644 --- a/web/blob/files.go +++ b/web/blob/files.go @@ -119,7 +119,7 @@ func templates_baseHtml() (*asset, error) { return nil, err } - info := bindataFileInfo{name: "templates/_base.html", size: 2017, mode: os.FileMode(420), modTime: time.Unix(1442039984, 0)} + info := bindataFileInfo{name: "templates/_base.html", size: 2017, mode: os.FileMode(420), modTime: time.Unix(1442334134, 0)} a := &asset{bytes: bytes, info: info} return a, nil } @@ -976,72 +976,72 @@ type bintree struct { } var _bintree = &bintree{nil, map[string]*bintree{ - "static": {nil, map[string]*bintree{ - "css": {nil, map[string]*bintree{ - "alerts.css": {staticCssAlertsCss, map[string]*bintree{}}, - "graph.css": {staticCssGraphCss, map[string]*bintree{}}, - "prom_console.css": {staticCssProm_consoleCss, map[string]*bintree{}}, - "prometheus.css": {staticCssPrometheusCss, map[string]*bintree{}}, + "static": &bintree{nil, map[string]*bintree{ + "css": &bintree{nil, map[string]*bintree{ + "alerts.css": &bintree{staticCssAlertsCss, map[string]*bintree{}}, + "graph.css": &bintree{staticCssGraphCss, map[string]*bintree{}}, + "prom_console.css": &bintree{staticCssProm_consoleCss, map[string]*bintree{}}, + "prometheus.css": &bintree{staticCssPrometheusCss, map[string]*bintree{}}, }}, - "img": {nil, map[string]*bintree{ - "ajax-loader.gif": {staticImgAjaxLoaderGif, map[string]*bintree{}}, + "img": &bintree{nil, map[string]*bintree{ + "ajax-loader.gif": &bintree{staticImgAjaxLoaderGif, map[string]*bintree{}}, }}, - "js": {nil, map[string]*bintree{ - "alerts.js": {staticJsAlertsJs, map[string]*bintree{}}, - "graph.js": {staticJsGraphJs, map[string]*bintree{}}, - "graph_template.handlebar": {staticJsGraph_templateHandlebar, map[string]*bintree{}}, - "prom_console.js": {staticJsProm_consoleJs, map[string]*bintree{}}, + "js": &bintree{nil, map[string]*bintree{ + "alerts.js": &bintree{staticJsAlertsJs, map[string]*bintree{}}, + "graph.js": &bintree{staticJsGraphJs, map[string]*bintree{}}, + "graph_template.handlebar": &bintree{staticJsGraph_templateHandlebar, map[string]*bintree{}}, + "prom_console.js": &bintree{staticJsProm_consoleJs, map[string]*bintree{}}, }}, - "vendor": {nil, map[string]*bintree{ - "bootstrap-3.3.1": {nil, map[string]*bintree{ - "css": {nil, map[string]*bintree{ - "bootstrap-theme.css": {staticVendorBootstrap331CssBootstrapThemeCss, map[string]*bintree{}}, - "bootstrap-theme.css.map": {staticVendorBootstrap331CssBootstrapThemeCssMap, map[string]*bintree{}}, - "bootstrap-theme.min.css": {staticVendorBootstrap331CssBootstrapThemeMinCss, map[string]*bintree{}}, - "bootstrap.css": {staticVendorBootstrap331CssBootstrapCss, map[string]*bintree{}}, - "bootstrap.css.map": {staticVendorBootstrap331CssBootstrapCssMap, map[string]*bintree{}}, - "bootstrap.min.css": {staticVendorBootstrap331CssBootstrapMinCss, map[string]*bintree{}}, + "vendor": &bintree{nil, map[string]*bintree{ + "bootstrap-3.3.1": &bintree{nil, map[string]*bintree{ + "css": &bintree{nil, map[string]*bintree{ + "bootstrap-theme.css": &bintree{staticVendorBootstrap331CssBootstrapThemeCss, map[string]*bintree{}}, + "bootstrap-theme.css.map": &bintree{staticVendorBootstrap331CssBootstrapThemeCssMap, map[string]*bintree{}}, + "bootstrap-theme.min.css": &bintree{staticVendorBootstrap331CssBootstrapThemeMinCss, map[string]*bintree{}}, + "bootstrap.css": &bintree{staticVendorBootstrap331CssBootstrapCss, map[string]*bintree{}}, + "bootstrap.css.map": &bintree{staticVendorBootstrap331CssBootstrapCssMap, map[string]*bintree{}}, + "bootstrap.min.css": &bintree{staticVendorBootstrap331CssBootstrapMinCss, map[string]*bintree{}}, }}, - "fonts": {nil, map[string]*bintree{ - "glyphicons-halflings-regular.eot": {staticVendorBootstrap331FontsGlyphiconsHalflingsRegularEot, map[string]*bintree{}}, - "glyphicons-halflings-regular.svg": {staticVendorBootstrap331FontsGlyphiconsHalflingsRegularSvg, map[string]*bintree{}}, - "glyphicons-halflings-regular.ttf": {staticVendorBootstrap331FontsGlyphiconsHalflingsRegularTtf, map[string]*bintree{}}, - "glyphicons-halflings-regular.woff": {staticVendorBootstrap331FontsGlyphiconsHalflingsRegularWoff, map[string]*bintree{}}, + "fonts": &bintree{nil, map[string]*bintree{ + "glyphicons-halflings-regular.eot": &bintree{staticVendorBootstrap331FontsGlyphiconsHalflingsRegularEot, map[string]*bintree{}}, + "glyphicons-halflings-regular.svg": &bintree{staticVendorBootstrap331FontsGlyphiconsHalflingsRegularSvg, map[string]*bintree{}}, + "glyphicons-halflings-regular.ttf": &bintree{staticVendorBootstrap331FontsGlyphiconsHalflingsRegularTtf, map[string]*bintree{}}, + "glyphicons-halflings-regular.woff": &bintree{staticVendorBootstrap331FontsGlyphiconsHalflingsRegularWoff, map[string]*bintree{}}, }}, - "js": {nil, map[string]*bintree{ - "bootstrap.js": {staticVendorBootstrap331JsBootstrapJs, map[string]*bintree{}}, - "bootstrap.min.js": {staticVendorBootstrap331JsBootstrapMinJs, map[string]*bintree{}}, - "npm.js": {staticVendorBootstrap331JsNpmJs, map[string]*bintree{}}, + "js": &bintree{nil, map[string]*bintree{ + "bootstrap.js": &bintree{staticVendorBootstrap331JsBootstrapJs, map[string]*bintree{}}, + "bootstrap.min.js": &bintree{staticVendorBootstrap331JsBootstrapMinJs, map[string]*bintree{}}, + "npm.js": &bintree{staticVendorBootstrap331JsNpmJs, map[string]*bintree{}}, }}, }}, - "bootstrap-datetimepicker": {nil, map[string]*bintree{ - "bootstrap-datetimepicker.js": {staticVendorBootstrapDatetimepickerBootstrapDatetimepickerJs, map[string]*bintree{}}, - "bootstrap-datetimepicker.min.css": {staticVendorBootstrapDatetimepickerBootstrapDatetimepickerMinCss, map[string]*bintree{}}, + "bootstrap-datetimepicker": &bintree{nil, map[string]*bintree{ + "bootstrap-datetimepicker.js": &bintree{staticVendorBootstrapDatetimepickerBootstrapDatetimepickerJs, map[string]*bintree{}}, + "bootstrap-datetimepicker.min.css": &bintree{staticVendorBootstrapDatetimepickerBootstrapDatetimepickerMinCss, map[string]*bintree{}}, }}, - "bootstrap3-typeahead": {nil, map[string]*bintree{ - "bootstrap3-typeahead.min.js": {staticVendorBootstrap3TypeaheadBootstrap3TypeaheadMinJs, map[string]*bintree{}}, + "bootstrap3-typeahead": &bintree{nil, map[string]*bintree{ + "bootstrap3-typeahead.min.js": &bintree{staticVendorBootstrap3TypeaheadBootstrap3TypeaheadMinJs, map[string]*bintree{}}, }}, - "js": {nil, map[string]*bintree{ - "handlebars.js": {staticVendorJsHandlebarsJs, map[string]*bintree{}}, - "jquery.hotkeys.js": {staticVendorJsJqueryHotkeysJs, map[string]*bintree{}}, - "jquery.min.js": {staticVendorJsJqueryMinJs, map[string]*bintree{}}, - "jquery.selection.js": {staticVendorJsJquerySelectionJs, map[string]*bintree{}}, + "js": &bintree{nil, map[string]*bintree{ + "handlebars.js": &bintree{staticVendorJsHandlebarsJs, map[string]*bintree{}}, + "jquery.hotkeys.js": &bintree{staticVendorJsJqueryHotkeysJs, map[string]*bintree{}}, + "jquery.min.js": &bintree{staticVendorJsJqueryMinJs, map[string]*bintree{}}, + "jquery.selection.js": &bintree{staticVendorJsJquerySelectionJs, map[string]*bintree{}}, }}, - "rickshaw": {nil, map[string]*bintree{ - "rickshaw.min.css": {staticVendorRickshawRickshawMinCss, map[string]*bintree{}}, - "rickshaw.min.js": {staticVendorRickshawRickshawMinJs, map[string]*bintree{}}, - "vendor": {nil, map[string]*bintree{ - "d3.layout.min.js": {staticVendorRickshawVendorD3LayoutMinJs, map[string]*bintree{}}, - "d3.v3.js": {staticVendorRickshawVendorD3V3Js, map[string]*bintree{}}, + "rickshaw": &bintree{nil, map[string]*bintree{ + "rickshaw.min.css": &bintree{staticVendorRickshawRickshawMinCss, map[string]*bintree{}}, + "rickshaw.min.js": &bintree{staticVendorRickshawRickshawMinJs, map[string]*bintree{}}, + "vendor": &bintree{nil, map[string]*bintree{ + "d3.layout.min.js": &bintree{staticVendorRickshawVendorD3LayoutMinJs, map[string]*bintree{}}, + "d3.v3.js": &bintree{staticVendorRickshawVendorD3V3Js, map[string]*bintree{}}, }}, }}, }}, }}, - "templates": {nil, map[string]*bintree{ - "_base.html": {templates_baseHtml, map[string]*bintree{}}, - "alerts.html": {templatesAlertsHtml, map[string]*bintree{}}, - "graph.html": {templatesGraphHtml, map[string]*bintree{}}, - "status.html": {templatesStatusHtml, map[string]*bintree{}}, + "templates": &bintree{nil, map[string]*bintree{ + "_base.html": &bintree{templates_baseHtml, map[string]*bintree{}}, + "alerts.html": &bintree{templatesAlertsHtml, map[string]*bintree{}}, + "graph.html": &bintree{templatesGraphHtml, map[string]*bintree{}}, + "status.html": &bintree{templatesStatusHtml, map[string]*bintree{}}, }}, }}