---
version: 2.1
+executors:
+ # Whenever the Go version is updated here, .travis.yml and .promu.yml
+ # should also be updated.
+ golang:
+ docker:
+ - image: circleci/golang:1.11
+
jobs:
# IPv6 tests require the machine executor.
# See https://circleci.com/docs/2.0/faq/#can-i-use-ipv6-in-my-tests for details.
root: .
paths:
- .build
+ - store_artifacts:
+ path: .build
+ destination: /build
docker_hub_master:
- docker:
- - image: circleci/golang:1.11
- working_directory: /go/src/github.com/prometheus/blackbox_exporter
-
- environment:
- DOCKER_IMAGE_NAME: prom/blackbox-exporter
- QUAY_IMAGE_NAME: quay.io/prometheus/blackbox-exporter
+ executor: golang
steps:
- checkout
- attach_workspace:
at: .
- run: ln -s .build/linux-amd64/blackbox_exporter blackbox_exporter
- - run: make docker DOCKER_IMAGE_NAME=$DOCKER_IMAGE_NAME
- - run: make docker DOCKER_IMAGE_NAME=$QUAY_IMAGE_NAME
+ - run: make docker
+ - run: make docker DOCKER_REPO=quay.io/prometheus:w
- run: docker images
- run: docker login -u $DOCKER_LOGIN -p $DOCKER_PASSWORD
- run: docker login -u $QUAY_LOGIN -p $QUAY_PASSWORD quay.io
- - run: docker push $DOCKER_IMAGE_NAME
- - run: docker push $QUAY_IMAGE_NAME
+ - run: make docker-publish
+ - run: make docker-publish DOCKER_REPO=quay.io/prometheus
docker_hub_release_tags:
- docker:
- - image: circleci/golang:1.11
- working_directory: /go/src/github.com/prometheus/blackbox_exporter
-
- environment:
- DOCKER_IMAGE_NAME: prom/blackbox-exporter
- QUAY_IMAGE_NAME: quay.io/prometheus/blackbox-exporter
+ executor: golang
steps:
- checkout
path: .tarballs
destination: releases
- run: ln -s .build/linux-amd64/blackbox_exporter blackbox_exporter
- - run: make docker DOCKER_IMAGE_NAME=$DOCKER_IMAGE_NAME DOCKER_IMAGE_TAG=$CIRCLE_TAG
- - run: make docker DOCKER_IMAGE_NAME=$QUAY_IMAGE_NAME DOCKER_IMAGE_TAG=$CIRCLE_TAG
+ - run: make docker DOCKER_IMAGE_TAG=$CIRCLE_TAG
+ - run: make docker DOCKER_IMAGE_TAG=$CIRCLE_TAG DOCKER_REPO=quay.io/prometheus
- run: docker login -u $DOCKER_LOGIN -p $DOCKER_PASSWORD
- run: docker login -u $QUAY_LOGIN -p $QUAY_PASSWORD quay.io
- run: |
if [[ "$CIRCLE_TAG" =~ ^v[0-9]+(\.[0-9]+){2}$ ]]; then
- docker tag "$DOCKER_IMAGE_NAME:$CIRCLE_TAG" "$DOCKER_IMAGE_NAME:latest"
- docker tag "$QUAY_IMAGE_NAME:$CIRCLE_TAG" "$QUAY_IMAGE_NAME:latest"
+ make docker-tag-latest DOCKER_IMAGE_TAG="$CIRCLE_TAG"
+ make docker-tag-latest DOCKER_IMAGE_TAG="$CIRCLE_TAG" DOCKER_REPO=quay.io/prometheus
fi
- - run: docker push $DOCKER_IMAGE_NAME
- - run: docker push $QUAY_IMAGE_NAME
+ - run: make docker-publish
+ - run: make docker-publish DOCKER_REPO=quay.io/prometheus
workflows:
version: 2
+go:
+ # Whenever the Go version is updated here, .travis.yml and
+ # .circle/config.yml should also be updated.
+ version: 1.11
repository:
path: github.com/prometheus/blackbox_exporter
build:
- flags: -a -tags netgo
+ flags: -mod=vendor -a -tags netgo
ldflags: |
-X {{repoPath}}/vendor/github.com/prometheus/common/version.Version={{.Version}}
-X {{repoPath}}/vendor/github.com/prometheus/common/version.Revision={{.Revision}}
language: go
-# Whenever the Go version is updated here, .circleci/config.yml should also be
-# updated.
+# Whenever the Go version is updated here, .circleci/config.yml and .promu.yml
+# should also be updated.
go:
- 1.11.x
script:
- make
+- git diff --exit-code
# !!! Open PRs only against the prometheus/prometheus/Makefile.common repository!
# Example usage :
-# Create the main Makefile in the root project directory.
+# Create the main Makefile in the root project directory.
# include Makefile.common
# customTarget:
# @echo ">> Running customTarget"
GO ?= go
GOFMT ?= $(GO)fmt
FIRST_GOPATH := $(firstword $(subst :, ,$(shell $(GO) env GOPATH)))
+GOOPTS ?=
+
+GO_VERSION ?= $(shell $(GO) version)
+GO_VERSION_NUMBER ?= $(word 3, $(GO_VERSION))
+PRE_GO_111 ?= $(shell echo $(GO_VERSION_NUMBER) | grep -E 'go1\.(10|[0-9])\.')
+
+unexport GOVENDOR
+ifeq (, $(PRE_GO_111))
+ ifneq (,$(wildcard go.mod))
+ # Enforce Go modules support just in case the directory is inside GOPATH (and for Travis CI).
+ GO111MODULE := on
+
+ ifneq (,$(wildcard vendor))
+ # Always use the local vendor/ directory to satisfy the dependencies.
+ GOOPTS := $(GOOPTS) -mod=vendor
+ endif
+ endif
+else
+ ifneq (,$(wildcard go.mod))
+ ifneq (,$(wildcard vendor))
+$(warning This repository requires Go >= 1.11 because of Go modules)
+$(warning Some recipes may not work as expected as the current Go runtime is '$(GO_VERSION_NUMBER)')
+ endif
+ else
+ # This repository isn't using Go modules (yet).
+ GOVENDOR := $(FIRST_GOPATH)/bin/govendor
+ endif
+
+ unexport GO111MODULE
+endif
PROMU := $(FIRST_GOPATH)/bin/promu
STATICCHECK := $(FIRST_GOPATH)/bin/staticcheck
-GOVENDOR := $(FIRST_GOPATH)/bin/govendor
pkgs = ./...
+GO_VERSION ?= $(shell $(GO) version)
+GO_BUILD_PLATFORM ?= $(subst /,-,$(lastword $(GO_VERSION)))
+
+PROMU_VERSION ?= 0.2.0
+PROMU_URL := https://github.com/prometheus/promu/releases/download/v$(PROMU_VERSION)/promu-$(PROMU_VERSION).$(GO_BUILD_PLATFORM).tar.gz
+
PREFIX ?= $(shell pwd)
BIN_DIR ?= $(shell pwd)
DOCKER_IMAGE_TAG ?= $(subst /,-,$(shell git rev-parse --abbrev-ref HEAD))
+DOCKER_REPO ?= prom
-all: style staticcheck unused build test
+.PHONY: all
+all: precheck style staticcheck unused build test
-style:
- @echo ">> checking code style"
- ! $(GOFMT) -d $$(find . -path ./vendor -prune -o -name '*.go' -print) | grep '^'
+# This rule is used to forward a target like "build" to "common-build". This
+# allows a new "build" target to be defined in a Makefile which includes this
+# one and override "common-build" without override warnings.
+%: common-% ;
-check_license:
+.PHONY: common-style
+common-style:
+ @echo ">> checking code style"
+ @fmtRes=$$($(GOFMT) -d $$(find . -path ./vendor -prune -o -name '*.go' -print)); \
+ if [ -n "$${fmtRes}" ]; then \
+ echo "gofmt checking failed!"; echo "$${fmtRes}"; echo; \
+ echo "Please ensure you are using $$($(GO) version) for formatting code."; \
+ exit 1; \
+ fi
+
+.PHONY: common-check_license
+common-check_license:
@echo ">> checking license header"
@licRes=$$(for file in $$(find . -type f -iname '*.go' ! -path './vendor/*') ; do \
awk 'NR<=3' $$file | grep -Eq "(Copyright|generated|GENERATED)" || echo $$file; \
exit 1; \
fi
-test-short:
+.PHONY: common-test-short
+common-test-short:
@echo ">> running short tests"
- $(GO) test -short $(pkgs)
+ GO111MODULE=$(GO111MODULE) $(GO) test -short $(GOOPTS) $(pkgs)
-test:
+.PHONY: common-test
+common-test:
@echo ">> running all tests"
- $(GO) test -race $(pkgs)
+ GO111MODULE=$(GO111MODULE) $(GO) test -race $(GOOPTS) $(pkgs)
-format:
+.PHONY: common-format
+common-format:
@echo ">> formatting code"
- $(GO) fmt $(pkgs)
+ GO111MODULE=$(GO111MODULE) $(GO) fmt $(GOOPTS) $(pkgs)
-vet:
+.PHONY: common-vet
+common-vet:
@echo ">> vetting code"
- $(GO) vet $(pkgs)
+ GO111MODULE=$(GO111MODULE) $(GO) vet $(GOOPTS) $(pkgs)
-staticcheck: $(STATICCHECK)
+.PHONY: common-staticcheck
+common-staticcheck: $(STATICCHECK)
@echo ">> running staticcheck"
+ifdef GO111MODULE
+ GO111MODULE=$(GO111MODULE) $(STATICCHECK) -ignore "$(STATICCHECK_IGNORE)" -checks "SA*" $(pkgs)
+else
$(STATICCHECK) -ignore "$(STATICCHECK_IGNORE)" $(pkgs)
+endif
-unused: $(GOVENDOR)
+.PHONY: common-unused
+common-unused: $(GOVENDOR)
+ifdef GOVENDOR
@echo ">> running check for unused packages"
@$(GOVENDOR) list +unused | grep . && exit 1 || echo 'No unused packages'
-
-build: promu
+else
+ifdef GO111MODULE
+ @echo ">> running check for unused/missing packages in go.mod"
+ GO111MODULE=$(GO111MODULE) $(GO) mod tidy
+ @git diff --exit-code -- go.sum go.mod
+ifneq (,$(wildcard vendor))
+ @echo ">> running check for unused packages in vendor/"
+ GO111MODULE=$(GO111MODULE) $(GO) mod vendor
+ @git diff --exit-code -- go.sum go.mod vendor/
+endif
+endif
+endif
+
+.PHONY: common-build
+common-build: promu
@echo ">> building binaries"
- $(PROMU) build --prefix $(PREFIX)
+ GO111MODULE=$(GO111MODULE) $(PROMU) build --prefix $(PREFIX)
-tarball: promu
+.PHONY: common-tarball
+common-tarball: promu
@echo ">> building release tarball"
$(PROMU) tarball --prefix $(PREFIX) $(BIN_DIR)
-docker:
- docker build -t "$(DOCKER_IMAGE_NAME):$(DOCKER_IMAGE_TAG)" .
+.PHONY: common-docker
+common-docker:
+ docker build -t "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME):$(DOCKER_IMAGE_TAG)" .
+
+.PHONY: common-docker-publish
+common-docker-publish:
+ docker push "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME)"
+
+.PHONY: common-docker-tag-latest
+common-docker-tag-latest:
+ docker tag "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME):$(DOCKER_IMAGE_TAG)" "$(DOCKER_REPO)/$(DOCKER_IMAGE_NAME):latest"
+
+.PHONY: promu
+promu: $(PROMU)
+
+$(PROMU):
+ curl -s -L $(PROMU_URL) | tar -xvz -C /tmp
+ mkdir -v -p $(FIRST_GOPATH)/bin
+ cp -v /tmp/promu-$(PROMU_VERSION).$(GO_BUILD_PLATFORM)/promu $(PROMU)
+
+.PHONY: proto
+proto:
+ @echo ">> generating code from proto files"
+ @./scripts/genproto.sh
+
+.PHONY: $(STATICCHECK)
+$(STATICCHECK):
+ifdef GO111MODULE
+# Get staticcheck from a temporary directory to avoid modifying the local go.{mod,sum}.
+# See https://github.com/golang/go/issues/27643.
+# For now, we are using the next branch of staticcheck because master isn't compatible yet with Go modules.
+ tmpModule=$$(mktemp -d 2>&1) && \
+ mkdir -p $${tmpModule}/staticcheck && \
+ cd "$${tmpModule}"/staticcheck && \
+ GO111MODULE=on $(GO) mod init example.com/staticcheck && \
+ GO111MODULE=on GOOS= GOARCH= $(GO) get -u honnef.co/go/tools/cmd/staticcheck@next && \
+ rm -rf $${tmpModule};
+else
+ GOOS= GOARCH= GO111MODULE=off $(GO) get -u honnef.co/go/tools/cmd/staticcheck
+endif
+
+ifdef GOVENDOR
+.PHONY: $(GOVENDOR)
+$(GOVENDOR):
+ GOOS= GOARCH= $(GO) get -u github.com/kardianos/govendor
+endif
-promu:
- GOOS= GOARCH= $(GO) get -u github.com/prometheus/promu
+.PHONY: precheck
+precheck::
-$(FIRST_GOPATH)/bin/staticcheck:
- GOOS= GOARCH= $(GO) get -u honnef.co/go/tools/cmd/staticcheck
+define PRECHECK_COMMAND_template =
+precheck:: $(1)_precheck
-$(FIRST_GOPATH)/bin/govendor:
- GOOS= GOARCH= $(GO) get -u github.com/kardianos/govendor
-.PHONY: all style check_license format build test vet assets tarball docker promu staticcheck $(FIRST_GOPATH)/bin/staticcheck govendor $(FIRST_GOPATH)/bin/govendor
\ No newline at end of file
+PRECHECK_COMMAND_$(1) ?= $(1) $$(strip $$(PRECHECK_OPTIONS_$(1)))
+.PHONY: $(1)_precheck
+$(1)_precheck:
+ @if ! $$(PRECHECK_COMMAND_$(1)) 1>/dev/null 2>&1; then \
+ echo "Execution of '$$(PRECHECK_COMMAND_$(1))' command failed. Is $(1) installed?"; \
+ exit 1; \
+ fi
+endef
--- /dev/null
+module github.com/prometheus/blackbox_exporter
+
+require (
+ github.com/alecthomas/assert v0.0.0-20170929043011-405dbfeb8e38 // indirect
+ github.com/alecthomas/colour v0.0.0-20160524082231-60882d9e2721 // indirect
+ github.com/alecthomas/repr v0.0.0-20181024024818-d37bc2a10ba1 // indirect
+ github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc // indirect
+ github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf // indirect
+ github.com/beorn7/perks v0.0.0-20160804104726-4c0e84591b9a // indirect
+ github.com/davecgh/go-spew v1.1.1 // indirect
+ github.com/go-kit/kit v0.0.0-20170917202734-0d313fb5fb3a
+ github.com/go-logfmt/logfmt v0.3.0 // indirect
+ github.com/go-stack/stack v1.6.0 // indirect
+ github.com/gogo/protobuf v1.1.1 // indirect
+ github.com/golang/protobuf v0.0.0-20170919002109-ae59567b9aab // indirect
+ github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 // indirect
+ github.com/mattn/go-isatty v0.0.4 // indirect
+ github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
+ github.com/miekg/dns v1.0.1
+ github.com/pkg/errors v0.0.0-20170910134614-2b3a18b5f0fb // indirect
+ github.com/pmezard/go-difflib v1.0.0 // indirect
+ github.com/prometheus/client_golang v0.9.0
+ github.com/prometheus/client_model v0.0.0-20170216185247-6f3806018612
+ github.com/prometheus/common v0.0.0-20180110214958-89604d197083
+ github.com/prometheus/procfs v0.0.0-20170703101242-e645f4e5aaa8 // indirect
+ github.com/sergi/go-diff v1.0.0 // indirect
+ github.com/stretchr/testify v1.2.2 // indirect
+ golang.org/x/crypto v0.0.0-20171231215028-0fcca4842a8d // indirect
+ golang.org/x/net v0.0.0-20171102191033-01c190206fbd
+ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f // indirect
+ golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b // indirect
+ gopkg.in/alecthomas/kingpin.v2 v2.2.5
+ gopkg.in/yaml.v2 v2.2.1
+)
--- /dev/null
+github.com/alecthomas/assert v0.0.0-20170929043011-405dbfeb8e38 h1:smF2tmSOzy2Mm+0dGI2AIUHY+w0BUc+4tn40djz7+6U=
+github.com/alecthomas/assert v0.0.0-20170929043011-405dbfeb8e38/go.mod h1:r7bzyVFMNntcxPZXK3/+KdruV1H5KSlyVY0gc+NgInI=
+github.com/alecthomas/colour v0.0.0-20160524082231-60882d9e2721 h1:JHZL0hZKJ1VENNfmXvHbgYlbUOvpzYzvy2aZU5gXVeo=
+github.com/alecthomas/colour v0.0.0-20160524082231-60882d9e2721/go.mod h1:QO9JBoKquHd+jz9nshCh40fOfO+JzsoXy8qTHF68zU0=
+github.com/alecthomas/repr v0.0.0-20181024024818-d37bc2a10ba1 h1:GDQdwm/gAcJcLAKQQZGOJ4knlw+7rfEQQcmwTbt4p5E=
+github.com/alecthomas/repr v0.0.0-20181024024818-d37bc2a10ba1/go.mod h1:xTS7Pm1pD1mvyM075QCDSRqH6qRLXylzS24ZTpRiSzQ=
+github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc h1:cAKDfWh5VpdgMhJosfJnn5/FoN2SRZ4p7fJNX58YPaU=
+github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
+github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf h1:qet1QNfXsQxTZqLG4oE62mJzwPIB8+Tee4RNCL9ulrY=
+github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
+github.com/beorn7/perks v0.0.0-20160804104726-4c0e84591b9a h1:BtpsbiV638WQZwhA98cEZw2BsbnQJrbd0BI7tsy0W1c=
+github.com/beorn7/perks v0.0.0-20160804104726-4c0e84591b9a/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
+github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
+github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/go-kit/kit v0.0.0-20170917202734-0d313fb5fb3a h1:O/GjYlORZIAFPkAp/N2ZYt1Db04+5Zqy6aVCKOtEYRs=
+github.com/go-kit/kit v0.0.0-20170917202734-0d313fb5fb3a/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
+github.com/go-logfmt/logfmt v0.3.0 h1:8HUsc87TaSWLKwrnumgC8/YconD2fJQsRJAsWaPg2ic=
+github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
+github.com/go-stack/stack v1.6.0 h1:MmJCxYVKTJ0SplGKqFVX3SBnmaUhODHZrrFF6jMbpZk=
+github.com/go-stack/stack v1.6.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
+github.com/gogo/protobuf v1.1.1 h1:72R+M5VuhED/KujmZVcIquuo8mBgX4oVda//DQb3PXo=
+github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
+github.com/golang/protobuf v0.0.0-20170919002109-ae59567b9aab h1:pKZ+/IABId4Dwwc1jMYLn6ZkJaT96kzZAZ0yG9wXraA=
+github.com/golang/protobuf v0.0.0-20170919002109-ae59567b9aab/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
+github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 h1:T+h1c/A9Gawja4Y9mFVWj2vyii2bbUNDw3kt9VxK2EY=
+github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
+github.com/mattn/go-isatty v0.0.4 h1:bnP0vzxcAdeI1zdubAl5PjU6zsERjGZb7raWodagDYs=
+github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
+github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
+github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
+github.com/miekg/dns v1.0.1 h1:6gt2fR2lfjPZ/wsZZZFEDcJLNW5eZwy1zUDIkyqxDsA=
+github.com/miekg/dns v1.0.1/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
+github.com/pkg/errors v0.0.0-20170910134614-2b3a18b5f0fb h1:jqgy5xL4OiYfjh8g+suiKXNwSJnf+a/HjO5XKaLOR+c=
+github.com/pkg/errors v0.0.0-20170910134614-2b3a18b5f0fb/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/prometheus/client_golang v0.9.0 h1:tXuTFVHC03mW0D+Ua1Q2d1EAVqLTuggX50V0VLICCzY=
+github.com/prometheus/client_golang v0.9.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
+github.com/prometheus/client_model v0.0.0-20170216185247-6f3806018612 h1:13pIdM2tpaDi4OVe24fgoIS7ZTqMt0QI+bwQsX5hq+g=
+github.com/prometheus/client_model v0.0.0-20170216185247-6f3806018612/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
+github.com/prometheus/common v0.0.0-20180110214958-89604d197083 h1:BVsJT8+ZbyuL3hypz/HmEiM8h2P6hBQGig4el9/MdjA=
+github.com/prometheus/common v0.0.0-20180110214958-89604d197083/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
+github.com/prometheus/procfs v0.0.0-20170703101242-e645f4e5aaa8 h1:uZfczEBIA1FZfOQo4/JWgGnMNd/4HVsM9A+B30wtlkA=
+github.com/prometheus/procfs v0.0.0-20170703101242-e645f4e5aaa8/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
+github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ=
+github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
+github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w=
+github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
+golang.org/x/crypto v0.0.0-20171231215028-0fcca4842a8d h1:GrqEEc3+MtHKTsZrdIGVoYDgLpbSRzW1EF+nLu0PcHE=
+golang.org/x/crypto v0.0.0-20171231215028-0fcca4842a8d/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
+golang.org/x/net v0.0.0-20171102191033-01c190206fbd h1:CLQSRrSDQMOMkogMxky7XOkERftMegAnxjT2re4E66M=
+golang.org/x/net v0.0.0-20171102191033-01c190206fbd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
+golang.org/x/sync v0.0.0-20181108010431-42b317875d0f h1:Bl/8QSvNqXvPGPGXa2z5xUTmV7VDcZyvRZ+QQXkXTZQ=
+golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b h1:MQE+LT/ABUuuvEZ+YQAMSXindAdUh7slEmAkup74op4=
+golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+gopkg.in/alecthomas/kingpin.v2 v2.2.5 h1:qskSCq465uEvC3oGocwvZNsO3RF3SpLVLumOAhL0bXo=
+gopkg.in/alecthomas/kingpin.v2 v2.2.5/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE=
+gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
--- /dev/null
+_testdata/
+_testdata2/
+logfmt-fuzz.zip
+logfmt.test.exe
--- /dev/null
+language: go
+sudo: false
+go:
+ - 1.3
+ - 1.4
+ - 1.5
+ - 1.6
+ - tip
+
+before_install:
+ - go get github.com/mattn/goveralls
+ - go get golang.org/x/tools/cmd/cover
+
+script:
+ - goveralls -service=travis-ci
--- /dev/null
+language: go
+sudo: false
+go:
+ - 1.2
+ - 1.3
+ - 1.4
+ - 1.5
+ - 1.6
+ - tip
+
+before_install:
+ - go get github.com/mattn/goveralls
+ - go get golang.org/x/tools/cmd/cover
+
+script:
+ - goveralls -service=travis-ci
--- /dev/null
+# This source code refers to The Go Authors for copyright purposes.
+# The master list of authors is in the main Go distribution,
+# visible at http://tip.golang.org/AUTHORS.
--- /dev/null
+# This source code was written by the Go contributors.
+# The master list of contributors is in the main Go distribution,
+# visible at http://tip.golang.org/CONTRIBUTORS.
--- /dev/null
+*.test
+*.swp
+*.prof
--- /dev/null
+coverage:
+ status:
+ project:
+ default:
+ target: 40%
+ threshold: null
+ patch: false
+ changes: false
--- /dev/null
+*.6
+tags
+test.out
+a.out
--- /dev/null
+language: go
+sudo: false
+go:
+ - 1.9.x
+ - tip
+
+env:
+ - TESTS="-race -v -bench=. -coverprofile=coverage.txt -covermode=atomic"
+ - TESTS="-race -v ./..."
+
+before_install:
+ # don't use the miekg/dns when testing forks
+ - mkdir -p $GOPATH/src/github.com/miekg
+ - ln -s $TRAVIS_BUILD_DIR $GOPATH/src/github.com/miekg/ || true
+
+script:
+ - go test $TESTS
+
+after_success:
+ - bash <(curl -s https://codecov.io/bash)
--- /dev/null
+# Compiled Object files, Static and Dynamic libs (Shared Objects)
+*.o
+*.a
+*.so
+
+# Folders
+_obj
+_test
+
+# Architecture specific extensions/prefixes
+*.[568vq]
+[568vq].out
+
+*.cgo1.go
+*.cgo2.c
+_cgo_defun.c
+_cgo_gotypes.go
+_cgo_export.*
+
+_testmain.go
+
+*.exe
+*.test
+*.prof
--- /dev/null
+language: go
+go_import_path: github.com/pkg/errors
+go:
+ - 1.4.x
+ - 1.5.x
+ - 1.6.x
+ - 1.7.x
+ - 1.8.x
+ - 1.9.x
+ - tip
+
+script:
+ - go test -v ./...
--- /dev/null
+command-line-arguments.test
ms = int64(time.Duration(d) / time.Millisecond)
unit = "ms"
)
+ if ms == 0 {
+ return "0s"
+ }
factors := map[string]int64{
"y": 1000 * 60 * 60 * 24 * 365,
"w": 1000 * 60 * 60 * 24 * 7,
--- /dev/null
+sudo: false
+language: go
+go:
+ - 1.7.6
+ - 1.8.3
--- /dev/null
+# This source code refers to The Go Authors for copyright purposes.
+# The master list of authors is in the main Go distribution,
+# visible at https://tip.golang.org/AUTHORS.
--- /dev/null
+# This source code was written by the Go contributors.
+# The master list of contributors is in the main Go distribution,
+# visible at https://tip.golang.org/CONTRIBUTORS.
--- /dev/null
+# This source code refers to The Go Authors for copyright purposes.
+# The master list of authors is in the main Go distribution,
+# visible at http://tip.golang.org/AUTHORS.
--- /dev/null
+# This source code was written by the Go contributors.
+# The master list of contributors is in the main Go distribution,
+# visible at http://tip.golang.org/CONTRIBUTORS.
import "unsafe"
func (v *iovec) set(b []byte) {
+ l := len(b)
+ if l == 0 {
+ return
+ }
v.Base = (*byte)(unsafe.Pointer(&b[0]))
- v.Len = uint32(len(b))
+ v.Len = uint32(l)
}
import "unsafe"
func (v *iovec) set(b []byte) {
+ l := len(b)
+ if l == 0 {
+ return
+ }
v.Base = (*byte)(unsafe.Pointer(&b[0]))
- v.Len = uint64(len(b))
+ v.Len = uint64(l)
}
import "unsafe"
func (v *iovec) set(b []byte) {
+ l := len(b)
+ if l == 0 {
+ return
+ }
v.Base = (*int8)(unsafe.Pointer(&b[0]))
- v.Len = uint64(len(b))
+ v.Len = uint64(l)
}
package socket
func (h *msghdr) setIov(vs []iovec) {
+ l := len(vs)
+ if l == 0 {
+ return
+ }
h.Iov = &vs[0]
- h.Iovlen = int32(len(vs))
+ h.Iovlen = int32(l)
}
import "unsafe"
func (h *msghdr) setIov(vs []iovec) {
+ l := len(vs)
+ if l == 0 {
+ return
+ }
h.Iov = &vs[0]
- h.Iovlen = uint32(len(vs))
+ h.Iovlen = uint32(l)
}
func (h *msghdr) setControl(b []byte) {
import "unsafe"
func (h *msghdr) setIov(vs []iovec) {
+ l := len(vs)
+ if l == 0 {
+ return
+ }
h.Iov = &vs[0]
- h.Iovlen = uint64(len(vs))
+ h.Iovlen = uint64(l)
}
func (h *msghdr) setControl(b []byte) {
package socket
func (h *msghdr) setIov(vs []iovec) {
+ l := len(vs)
+ if l == 0 {
+ return
+ }
h.Iov = &vs[0]
- h.Iovlen = uint32(len(vs))
+ h.Iovlen = uint32(l)
}
for i := range vs {
vs[i].set(bs[i])
}
- h.Iov = &vs[0]
- h.Iovlen = int32(len(vs))
+ if len(vs) > 0 {
+ h.Iov = &vs[0]
+ h.Iovlen = int32(len(vs))
+ }
if len(oob) > 0 {
h.Accrights = (*int8)(unsafe.Pointer(&oob[0]))
h.Accrightslen = int32(len(oob))
if ip4 := ip.To4(); ip4 != nil {
b := make([]byte, sizeofSockaddrInet)
switch runtime.GOOS {
- case "linux", "solaris", "windows":
+ case "android", "linux", "solaris", "windows":
NativeEndian.PutUint16(b[:2], uint16(sysAF_INET))
default:
b[0] = sizeofSockaddrInet
if ip6 := ip.To16(); ip6 != nil && ip.To4() == nil {
b := make([]byte, sizeofSockaddrInet6)
switch runtime.GOOS {
- case "linux", "solaris", "windows":
+ case "android", "linux", "solaris", "windows":
NativeEndian.PutUint16(b[:2], uint16(sysAF_INET6))
default:
b[0] = sizeofSockaddrInet6
}
var af int
switch runtime.GOOS {
- case "linux", "solaris", "windows":
+ case "android", "linux", "solaris", "windows":
af = int(NativeEndian.Uint16(b[:2]))
default:
af = int(b[1])
--- /dev/null
+sudo: false
+language: go
+install: go get -t -v ./...
+go: 1.2
--- /dev/null
+language: go
+
+go:
+ - 1.4
+ - 1.5
+ - 1.6
+ - 1.7
+ - 1.8
+ - 1.9
+ - tip
+
+go_import_path: gopkg.in/yaml.v2
--- /dev/null
+# github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc
+github.com/alecthomas/template
+github.com/alecthomas/template/parse
+# github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf
+github.com/alecthomas/units
+# github.com/beorn7/perks v0.0.0-20160804104726-4c0e84591b9a
+github.com/beorn7/perks/quantile
+# github.com/go-kit/kit v0.0.0-20170917202734-0d313fb5fb3a
+github.com/go-kit/kit/log
+github.com/go-kit/kit/log/level
+# github.com/go-logfmt/logfmt v0.3.0
+github.com/go-logfmt/logfmt
+# github.com/go-stack/stack v1.6.0
+github.com/go-stack/stack
+# github.com/golang/protobuf v0.0.0-20170919002109-ae59567b9aab
+github.com/golang/protobuf/proto
+# github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515
+github.com/kr/logfmt
+# github.com/matttproud/golang_protobuf_extensions v1.0.1
+github.com/matttproud/golang_protobuf_extensions/pbutil
+# github.com/miekg/dns v1.0.1
+github.com/miekg/dns
+# github.com/pkg/errors v0.0.0-20170910134614-2b3a18b5f0fb
+github.com/pkg/errors
+# github.com/prometheus/client_golang v0.9.0
+github.com/prometheus/client_golang/prometheus
+github.com/prometheus/client_golang/prometheus/promhttp
+github.com/prometheus/client_golang/prometheus/internal
+# github.com/prometheus/client_model v0.0.0-20170216185247-6f3806018612
+github.com/prometheus/client_model/go
+# github.com/prometheus/common v0.0.0-20180110214958-89604d197083
+github.com/prometheus/common/expfmt
+github.com/prometheus/common/promlog
+github.com/prometheus/common/promlog/flag
+github.com/prometheus/common/version
+github.com/prometheus/common/config
+github.com/prometheus/common/model
+github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg
+# github.com/prometheus/procfs v0.0.0-20170703101242-e645f4e5aaa8
+github.com/prometheus/procfs
+github.com/prometheus/procfs/xfs
+# golang.org/x/crypto v0.0.0-20171231215028-0fcca4842a8d
+golang.org/x/crypto/ed25519
+golang.org/x/crypto/ed25519/internal/edwards25519
+# golang.org/x/net v0.0.0-20171102191033-01c190206fbd
+golang.org/x/net/icmp
+golang.org/x/net/ipv4
+golang.org/x/net/ipv6
+golang.org/x/net/publicsuffix
+golang.org/x/net/internal/iana
+golang.org/x/net/internal/socket
+golang.org/x/net/bpf
+# gopkg.in/alecthomas/kingpin.v2 v2.2.5
+gopkg.in/alecthomas/kingpin.v2
+# gopkg.in/yaml.v2 v2.2.1
+gopkg.in/yaml.v2
+++ /dev/null
-{
- "comment": "",
- "ignore": "test",
- "package": [
- {
- "checksumSHA1": "KmjnydoAbofMieIWm+it5OWERaM=",
- "path": "github.com/alecthomas/template",
- "revision": "a0175ee3bccc567396460bf5acd36800cb10c49c",
- "revisionTime": "2016-04-05T07:15:01Z"
- },
- {
- "checksumSHA1": "3wt0pTXXeS+S93unwhGoLIyGX/Q=",
- "path": "github.com/alecthomas/template/parse",
- "revision": "a0175ee3bccc567396460bf5acd36800cb10c49c",
- "revisionTime": "2016-04-05T07:15:01Z"
- },
- {
- "checksumSHA1": "fCc3grA7vIxfBru7R3SqjcW+oLI=",
- "path": "github.com/alecthomas/units",
- "revision": "2efee857e7cfd4f3d0138cc3cbb1b4966962b93a",
- "revisionTime": "2015-10-22T06:55:26Z"
- },
- {
- "checksumSHA1": "spyv5/YFBjYyZLZa1U2LBfDR8PM=",
- "path": "github.com/beorn7/perks/quantile",
- "revision": "4c0e84591b9aa9e6dcfdf3e020114cd81f89d5f9",
- "revisionTime": "2016-08-04T10:47:26Z"
- },
- {
- "checksumSHA1": "KrIRJ4p3nRze4NcxfgX5+N9+D1M=",
- "path": "github.com/go-kit/kit/log",
- "revision": "0d313fb5fb3a94d87d61e6434785264e87a5d740",
- "revisionTime": "2017-09-17T20:27:34Z"
- },
- {
- "checksumSHA1": "t7aTpDH0h4BZcGU0KkUr14QQG2w=",
- "path": "github.com/go-kit/kit/log/level",
- "revision": "0d313fb5fb3a94d87d61e6434785264e87a5d740",
- "revisionTime": "2017-09-17T20:27:34Z"
- },
- {
- "checksumSHA1": "KxX/Drph+byPXBFIXaCZaCOAnrU=",
- "path": "github.com/go-logfmt/logfmt",
- "revision": "390ab7935ee28ec6b286364bba9b4dd6410cb3d5",
- "revisionTime": "2016-11-15T14:25:13Z"
- },
- {
- "checksumSHA1": "j6vhe49MX+dyHR9rU91P6vMx55o=",
- "path": "github.com/go-stack/stack",
- "revision": "817915b46b97fd7bb80e8ab6b69f01a53ac3eebf",
- "revisionTime": "2017-07-24T01:23:01Z"
- },
- {
- "checksumSHA1": "yqF125xVSkmfLpIVGrLlfE05IUk=",
- "path": "github.com/golang/protobuf/proto",
- "revision": "ae59567b9aab61b50b2590679a62c3c044030b61",
- "revisionTime": "2017-09-19T00:21:09Z"
- },
- {
- "checksumSHA1": "abKzFXAn0KDr5U+JON1ZgJ2lUtU=",
- "path": "github.com/kr/logfmt",
- "revision": "b84e30acd515aadc4b783ad4ff83aff3299bdfe0",
- "revisionTime": "2014-02-26T03:06:59Z"
- },
- {
- "checksumSHA1": "bKMZjd2wPw13VwoE7mBeSv5djFA=",
- "path": "github.com/matttproud/golang_protobuf_extensions/pbutil",
- "revision": "c12348ce28de40eed0136aa2b644d0ee0650e56c",
- "revisionTime": "2016-04-24T11:30:07Z"
- },
- {
- "checksumSHA1": "ILTVouyz8EPosBS0+g+hYsBnwds=",
- "path": "github.com/miekg/dns",
- "revision": "787fb05a250f045a0c3e676c8c499ed412633f45",
- "revisionTime": "2017-12-21T11:36:42Z",
- "version": "v1.0.1",
- "versionExact": "v1.0.1"
- },
- {
- "checksumSHA1": "rJab1YdNhQooDiBWNnt7TLWPyBU=",
- "path": "github.com/pkg/errors",
- "revision": "2b3a18b5f0fb6b4f9190549597d3f962c02bc5eb",
- "revisionTime": "2017-09-10T13:46:14Z"
- },
- {
- "checksumSHA1": "frS661rlSEZWE9CezHhnFioQK/I=",
- "path": "github.com/prometheus/client_golang/prometheus",
- "revision": "1cafe34db7fdec6022e17e00e1c1ea501022f3e4",
- "revisionTime": "2018-10-15T14:52:39Z",
- "version": "v0.9.0",
- "versionExact": "v0.9.0"
- },
- {
- "checksumSHA1": "UBqhkyjCz47+S19MVTigxJ2VjVQ=",
- "path": "github.com/prometheus/client_golang/prometheus/internal",
- "revision": "1cafe34db7fdec6022e17e00e1c1ea501022f3e4",
- "revisionTime": "2018-10-15T14:52:39Z",
- "version": "v0.9.0",
- "versionExact": "v0.9.0"
- },
- {
- "checksumSHA1": "d5BiEvD8MrgpWQ6PQJUvawJsMak=",
- "path": "github.com/prometheus/client_golang/prometheus/promhttp",
- "revision": "1cafe34db7fdec6022e17e00e1c1ea501022f3e4",
- "revisionTime": "2018-10-15T14:52:39Z",
- "version": "v0.9.0",
- "versionExact": "v0.9.0"
- },
- {
- "checksumSHA1": "DvwvOlPNAgRntBzt3b3OSRMS2N4=",
- "path": "github.com/prometheus/client_model/go",
- "revision": "6f3806018612930941127f2a7c6c453ba2c527d2",
- "revisionTime": "2017-02-16T18:52:47Z"
- },
- {
- "checksumSHA1": "i+0TxE6bOpJdPNOeNHpO0vMzFh4=",
- "path": "github.com/prometheus/common/config",
- "revision": "89604d197083d4781071d3c65855d24ecfb0a563",
- "revisionTime": "2018-01-10T21:49:58Z"
- },
- {
- "checksumSHA1": "xfnn0THnqNwjwimeTClsxahYrIo=",
- "path": "github.com/prometheus/common/expfmt",
- "revision": "2f17f4a9d485bf34b4bfaccc273805040e4f86c8",
- "revisionTime": "2017-09-08T16:18:22Z"
- },
- {
- "checksumSHA1": "GWlM3d2vPYyNATtTFgftS10/A9w=",
- "path": "github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg",
- "revision": "2f17f4a9d485bf34b4bfaccc273805040e4f86c8",
- "revisionTime": "2017-09-08T16:18:22Z"
- },
- {
- "checksumSHA1": "3VoqH7TFfzA6Ds0zFzIbKCUvBmw=",
- "path": "github.com/prometheus/common/model",
- "revision": "2f17f4a9d485bf34b4bfaccc273805040e4f86c8",
- "revisionTime": "2017-09-08T16:18:22Z"
- },
- {
- "checksumSHA1": "Yseprf8kAFr/s7wztkQnrFuFN+8=",
- "path": "github.com/prometheus/common/promlog",
- "revision": "2f17f4a9d485bf34b4bfaccc273805040e4f86c8",
- "revisionTime": "2017-09-08T16:18:22Z"
- },
- {
- "checksumSHA1": "1H28FCxsaAIm6kvue+Wfdd8Lq6M=",
- "path": "github.com/prometheus/common/promlog/flag",
- "revision": "2f17f4a9d485bf34b4bfaccc273805040e4f86c8",
- "revisionTime": "2017-09-08T16:18:22Z"
- },
- {
- "checksumSHA1": "91KYK0SpvkaMJJA2+BcxbVnyRO0=",
- "path": "github.com/prometheus/common/version",
- "revision": "2f17f4a9d485bf34b4bfaccc273805040e4f86c8",
- "revisionTime": "2017-09-08T16:18:22Z"
- },
- {
- "checksumSHA1": "ihxJIjxtbEYdQKwA0D0nRipj95I=",
- "path": "github.com/prometheus/procfs",
- "revision": "e645f4e5aaa8506fc71d6edbc5c4ff02c04c46f2",
- "revisionTime": "2017-07-03T10:12:42Z"
- },
- {
- "checksumSHA1": "xCiFAAwVTrjsfZT1BIJQ3DgeNCY=",
- "path": "github.com/prometheus/procfs/xfs",
- "revision": "e645f4e5aaa8506fc71d6edbc5c4ff02c04c46f2",
- "revisionTime": "2017-07-03T10:12:42Z"
- },
- {
- "checksumSHA1": "1hwn8cgg4EVXhCpJIqmMbzqnUo0=",
- "path": "golang.org/x/crypto/ed25519",
- "revision": "0fcca4842a8d74bfddc2c96a073bd2a4d2a7a2e8",
- "revisionTime": "2017-11-25T19:00:56Z"
- },
- {
- "checksumSHA1": "LXFcVx8I587SnWmKycSDEq9yvK8=",
- "path": "golang.org/x/crypto/ed25519/internal/edwards25519",
- "revision": "0fcca4842a8d74bfddc2c96a073bd2a4d2a7a2e8",
- "revisionTime": "2017-11-25T19:00:56Z"
- },
- {
- "checksumSHA1": "uX2McdP4VcQ6zkAF0Q4oyd0rFtU=",
- "path": "golang.org/x/net/bpf",
- "revision": "8351a756f30f1297fe94bbf4b767ec589c6ea6d0",
- "revisionTime": "2017-09-15T01:39:56Z"
- },
- {
- "checksumSHA1": "DqdFGWbLLyVFeDvzvXyf1Y678uA=",
- "path": "golang.org/x/net/icmp",
- "revision": "8351a756f30f1297fe94bbf4b767ec589c6ea6d0",
- "revisionTime": "2017-09-15T01:39:56Z"
- },
- {
- "checksumSHA1": "YoSf+PgTWvHmFVaF3MrtZz3kX38=",
- "path": "golang.org/x/net/internal/iana",
- "revision": "8351a756f30f1297fe94bbf4b767ec589c6ea6d0",
- "revisionTime": "2017-09-15T01:39:56Z"
- },
- {
- "checksumSHA1": "5eWwtQVHJ0Lp2/538Kve2KuE8gQ=",
- "path": "golang.org/x/net/internal/socket",
- "revision": "8351a756f30f1297fe94bbf4b767ec589c6ea6d0",
- "revisionTime": "2017-09-15T01:39:56Z"
- },
- {
- "checksumSHA1": "ZGMENpNTj2hojdJMcrUO+UPKVgE=",
- "path": "golang.org/x/net/ipv4",
- "revision": "8351a756f30f1297fe94bbf4b767ec589c6ea6d0",
- "revisionTime": "2017-09-15T01:39:56Z"
- },
- {
- "checksumSHA1": "QUvByKIVmIy9c+8+O1XGyh9ynoY=",
- "path": "golang.org/x/net/ipv6",
- "revision": "8351a756f30f1297fe94bbf4b767ec589c6ea6d0",
- "revisionTime": "2017-09-15T01:39:56Z"
- },
- {
- "checksumSHA1": "nt4o3cMOyP9prgVeAZgRf82/Et0=",
- "path": "golang.org/x/net/publicsuffix",
- "revision": "01c190206fbdffa42f334f4b2bf2220f50e64920",
- "revisionTime": "2017-11-02T18:53:09Z"
- },
- {
- "checksumSHA1": "3SZTatHIy9OTKc95YlVfXKnoySg=",
- "path": "gopkg.in/alecthomas/kingpin.v2",
- "revision": "1087e65c9441605df944fb12c33f0fe7072d18ca",
- "revisionTime": "2017-07-27T04:22:29Z"
- },
- {
- "checksumSHA1": "ZSWoOPUNRr5+3dhkLK3C4cZAQPk=",
- "path": "gopkg.in/yaml.v2",
- "revision": "5420a8b6744d3b0345ab293f6fcba19c978f1183",
- "revisionTime": "2018-03-28T19:50:20Z",
- "version": "v2.2",
- "versionExact": "v2.2.1"
- }
- ],
- "rootPath": "github.com/prometheus/blackbox_exporter"
-}