diff --git a/.gitignore b/.gitignore index 63b2d1c3..9ce67d3d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,18 +1,23 @@ -/up.conf +# Change this line. /unifi-poller -/unifi-poller*.gz -/unifi-poller*.txz -/unifi-poller*.zip -/unifi-poller*.1 -/unifi-poller*.deb -/unifi-poller*.rpm -/unifi-poller*.arm -/unifi-poller*.exe -/unifi-poller*.macos -/unifi-poller*.freebsd -/unifi-poller*.bsd -/unifi-poller*.linux -/unifi-poller.rb +/init/macos/*.app/Contents/MacOS/* +# The rest is probably fine. +/rsrc*.syso +/*.log +/*.conf +/*.gz +/*.zip +/*.upx +/unpackerr*.1 +/*.deb +/*.rpm +/*.txz +/*.*.arm +/*.*.exe +/*.*.macos +/*.*.linux +/*.*.freebsd +/*.rb *.sha256 /vendor .DS_Store @@ -23,11 +28,10 @@ MANUAL MANUAL.html README README.html -/unifi-poller_manual.html -/homebrew_release_repo -/.metadata.make -bitly_token -github_deploy_key -gpg.signing.key -.secret-files.tar -*.so +/*_manual.html +/homebrew-mugs +.secret*files.tar +github_deploy_key* +.metadata.make +/after-install-rendered.sh +/before-remove-rendered.sh diff --git a/.travis.yml b/.travis.yml index 9d927dbe..d122b054 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,13 +15,14 @@ addons: - debsigs - gnupg - expect -go: -- 1.14.x -services: - - docker + - upx +go: 1.16.x +os: linux +dist: bionic +services: docker install: - - rvm install 2.3.0 - - rvm 2.3.0 do gem install --no-document fpm + - rvm install 2.6.0 + - rvm 2.6.0 do gem install --no-document fpm # download super-linter: golangci-lint # - curl -sL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s -- -b $(go env GOPATH)/bin latest before_script: @@ -29,17 +30,17 @@ before_script: # Create your own deploy key, tar it, and encrypt the file to make this work. Optionally add a bitly_token file to the archive. - openssl aes-256-cbc -K $encrypted_9f3147001275_key -iv $encrypted_9f3147001275_iv -in .secret-files.tar.enc -out .secret-files.tar -d - tar -xf .secret-files.tar - - gpg --import gpg.signing.key + - gpg --batch --yes --import gpg.signing.key - rm -f gpg.signing.key .secret-files.tar - - source .metadata.sh + - source settings.sh script: # Test Go and Docker. # - make test - make docker # Test built docker image. - - docker run $BINARY -v 2>&1 | grep -Eq "^$BINARY v$VERSION" + - docker run $BINARY -v 2>&1 | grep -Eq "^$BINARY, version $VERSION" # Build everything - - rvm 2.3.0 do make release + - rvm 2.6.0 do make release after_success: # Display Release Folder - ls -l release/ @@ -63,6 +64,7 @@ deploy: secure: GsvW0m+EnRELQMk8DjH63VXinqbwse4FJ4vNUslOE6CZ8PBXPrH0ZgaI7ic/uxRtm7CYj0sir4CZq62W5l6uhoXCCQfjOnmJspqnQcrFZ1xRdWktsNXaRwM6hlzaUThsJ/1PD9Psc66uKXBYTg0IlUz0yjZAZk7tCUE4libuj41z40ZKxUcbfcNvH4Njc9IpNB4QSA3ss+a9/6ZwBz4tHVamsGIrzaE0Zf99ItNBYvaOwhM2rC/NWIsFmwt8w4rIA2NIrkZgMDV+Z2Niqh4JRLAWCQNx/RjC5U52lG2yhqivUC3TromZ+q4O4alUltsyIzF2nVanLWgJmbeFo8uXT5A+gd3ovSkFLU9medXd9i4kap7kN/o5m9p5QZvrdEYHEmIU4ml5rjT2EQQVy5CtSmpiRAbhpEJIvA1wDtRq8rdz8IVfJXkHNjg2XdouNmMMWqa3OkEPw21+uxsqv4LscW/6ZjsavzL5SSdnBRU9n79EfGJE/tJLKiNumah/vLuJ5buNhgqmCdtX/Tg+DhQS1BOyYg4l4L8s9IIKZgFRwrOPsZnA/KsrWg4ZsjJ87cqKCaT/qs2EJx5odZcZWJYLBngeO8Tc6cQtLgJdieY2oEKo51Agq4rgikZDt21m6TY9/R5lPN0piwdpy3ZGKfv1ijXx74raMT03qskputzMCvc= overwrite: true skip_cleanup: true + cleanup: false file_glob: true file: release/* on: @@ -74,6 +76,7 @@ deploy: - provider: script script: scripts/package-deploy.sh skip_cleanup: true + cleanup: false on: all_branches: true condition: $TRAVIS_BRANCH =~ ^(master|v[0-9.]+)$ diff --git a/Makefile b/Makefile index 20e5122a..9dffdb46 100644 --- a/Makefile +++ b/Makefile @@ -1,12 +1,18 @@ # This Makefile is written as generic as possible. -# Setting the variables in .metadata.sh and creating the paths in the repo makes this work. +# Setting the variables in settings.sh and creating the paths in the repo makes this work. # See more: https://github.com/golift/application-builder # Suck in our application information. -IGNORED:=$(shell bash -c "source .metadata.sh ; env | sed 's/=/:=/;s/^/export /' > .metadata.make") +IGNORED:=$(shell bash -c "source settings.sh ; env | grep -v BASH_FUNC | sed 's/=/:=/;s/^/export /' > .metadata.make") # md2roff turns markdown into man files and html files. -MD2ROFF_BIN=github.com/github/hub/md2roff-bin +MD2ROFF_BIN=github.com/davidnewhall/md2roff + +# rsrc adds an ico file to a Windows exe file. +RSRC_BIN=github.com/akavel/rsrc + +# If upx is available, use it to compress the binaries. +UPXPATH=$(shell which upx) # Travis CI passes the version in. Local builds get it from the current git tag. ifeq ($(VERSION),) @@ -20,13 +26,15 @@ else ITERATION:=$(_ITERATION) endif + # rpm is wierd and changes - to _ in versions. RPMVERSION:=$(shell echo $(VERSION) | tr -- - _) +# used for freebsd packages. BINARYU:=$(shell echo $(BINARY) | tr -- - _) PACKAGE_SCRIPTS= ifeq ($(FORMULA),service) - PACKAGE_SCRIPTS=--after-install scripts/after-install.sh --before-remove scripts/before-remove.sh + PACKAGE_SCRIPTS=--after-install after-install-rendered.sh --before-remove before-remove-rendered.sh endif define PACKAGE_ARGS @@ -36,118 +44,159 @@ $(PACKAGE_SCRIPTS) \ --rpm-os linux \ --iteration $(ITERATION) \ --license $(LICENSE) \ ---url $(URL) \ +--url $(SOURCE_URL) \ --maintainer "$(MAINT)" \ --vendor "$(VENDOR)" \ --description "$(DESC)" \ --config-files "/etc/$(BINARY)/$(CONFIG_FILE)" \ ---freebsd-origin "$(BINARY)/$(BINARY)" +--freebsd-origin "$(SOURCE_URL)" endef PLUGINS:=$(patsubst plugins/%/main.go,%,$(wildcard plugins/*/main.go)) -VERSION_LDFLAGS:= \ - -X github.com/prometheus/common/version.Branch=$(BRANCH) \ - -X github.com/prometheus/common/version.BuildDate=$(DATE) \ - -X github.com/prometheus/common/version.Revision=$(COMMIT) \ - -X github.com/prometheus/common/version.Version=$(VERSION)-$(ITERATION) +VERSION_LDFLAGS:= -X \"$(VERSION_PATH).Branch=$(BRANCH) ($(COMMIT))\" \ + -X \"$(VERSION_PATH).BuildDate=$(DATE)\" \ + -X \"$(VERSION_PATH).BuildUser=$(shell whoami)\" \ + -X \"$(VERSION_PATH).Revision=$(ITERATION)\" \ + -X \"$(VERSION_PATH).Version=$(VERSION)\" # Makefile targets follow. all: clean build +#################### +##### Releases ##### +#################### + # Prepare a release. Called in Travis CI. -release: clean macos windows linux_packages freebsd_packages +release: clean linux_packages freebsd_packages windows # Prepareing a release! mkdir -p $@ - mv $(BINARY).*.macos $(BINARY).*.linux $(BINARY).*.freebsd $@/ + mv $(BINARY).*.linux $(BINARY).*.freebsd $@/ gzip -9r $@/ - for i in $(BINARY)*.exe; do zip -9qm $@/$$i.zip $$i;done + for i in $(BINARY)*.exe ; do zip -9qj $@/$$i.zip $$i examples/*.example *.html; rm -f $$i;done mv *.rpm *.deb *.txz $@/ # Generating File Hashes openssl dgst -r -sha256 $@/* | sed 's#release/##' | tee $@/checksums.sha256.txt +dmg: clean macapp + mkdir -p release + hdiutil create release/$(MACAPP).dmg -srcfolder $(MACAPP).app -ov + openssl dgst -r -sha256 release/* | sed 's#release/##' | tee release/dmg_checksum.sha256.txt # Delete all build assets. clean: - # Cleaning up. - rm -f $(BINARY) $(BINARY).*.{macos,freebsd,linux,exe}{,.gz,.zip} $(BINARY).1{,.gz} $(BINARY).rb + rm -f $(BINARY) $(BINARY).*.{macos,freebsd,linux,exe,upx}{,.gz,.zip} $(BINARY).1{,.gz} $(BINARY).rb rm -f $(BINARY){_,-}*.{deb,rpm,txz} v*.tar.gz.sha256 examples/MANUAL .metadata.make - rm -f cmd/$(BINARY)/README{,.html} README{,.html} ./$(BINARY)_manual.html - rm -rf package_build_* release + rm -f cmd/$(BINARY)/README{,.html} README{,.html} ./$(BINARY)_manual.html rsrc.syso $(MACAPP).app.zip + rm -rf package_build_* release after-install-rendered.sh before-remove-rendered.sh $(MACAPP).app + +#################### +##### Sidecars ##### +#################### # Build a man page from a markdown file using md2roff. # This also turns the repo readme into an html file. # md2roff is needed to build the man file and html pages from the READMEs. man: $(BINARY).1.gz -$(BINARY).1.gz: +$(BINARY).1.gz: md2roff # Building man page. Build dependency first: md2roff - go run $(MD2ROFF_BIN) --manual $(BINARY) --version $(VERSION) --date "$(DATE)" examples/MANUAL.md + $(shell go env GOPATH)/bin/md2roff --manual $(BINARY) --version $(VERSION) --date "$(DATE)" examples/MANUAL.md gzip -9nc examples/MANUAL > $@ mv examples/MANUAL.html $(BINARY)_manual.html +md2roff: $(shell go env GOPATH)/bin/md2roff +$(shell go env GOPATH)/bin/md2roff: + cd /tmp ; go get $(MD2ROFF_BIN) ; go install $(MD2ROFF_BIN) + # TODO: provide a template that adds the date to the built html file. readme: README.html -README.html: +README.html: md2roff # This turns README.md into README.html - go run $(MD2ROFF_BIN) --manual $(BINARY) --version $(VERSION) --date "$(DATE)" README.md + $(shell go env GOPATH)/bin/md2roff --manual $(BINARY) --version $(VERSION) --date "$(DATE)" README.md -# Binaries +rsrc: rsrc.syso +rsrc.syso: init/windows/application.ico init/windows/manifest.xml $(shell go env GOPATH)/bin/rsrc + $(shell go env GOPATH)/bin/rsrc -ico init/windows/application.ico -manifest init/windows/manifest.xml +$(shell go env GOPATH)/bin/rsrc: + cd /tmp ; go get $(RSRC_BIN) ; go install $(RSRC_BIN) + +#################### +##### Binaries ##### +#################### build: $(BINARY) $(BINARY): main.go - go build -o $(BINARY) -ldflags "-w -s $(VERSION_LDFLAGS)" + go build -o $(BINARY) -ldflags "-w -s $(VERSION_LDFLAGS) $(EXTRA_LDFLAGS) " + [ -z "$(UPXPATH)" ] || $(UPXPATH) -q9 $@ linux: $(BINARY).amd64.linux $(BINARY).amd64.linux: main.go # Building linux 64-bit x86 binary. - GOOS=linux GOARCH=amd64 go build -o $@ -ldflags "-w -s $(VERSION_LDFLAGS)" + GOOS=linux GOARCH=amd64 go build -o $@ -ldflags "-w -s $(VERSION_LDFLAGS) $(EXTRA_LDFLAGS) " + [ -z "$(UPXPATH)" ] || $(UPXPATH) -q9 $@ linux386: $(BINARY).i386.linux $(BINARY).i386.linux: main.go # Building linux 32-bit x86 binary. - GOOS=linux GOARCH=386 go build -o $@ -ldflags "-w -s $(VERSION_LDFLAGS)" + GOOS=linux GOARCH=386 go build -o $@ -ldflags "-w -s $(VERSION_LDFLAGS) $(EXTRA_LDFLAGS) " + [ -z "$(UPXPATH)" ] || $(UPXPATH) -q9 $@ arm: arm64 armhf arm64: $(BINARY).arm64.linux $(BINARY).arm64.linux: main.go # Building linux 64-bit ARM binary. - GOOS=linux GOARCH=arm64 go build -o $@ -ldflags "-w -s $(VERSION_LDFLAGS)" + GOOS=linux GOARCH=arm64 go build -o $@ -ldflags "-w -s $(VERSION_LDFLAGS) $(EXTRA_LDFLAGS) " + [ -z "$(UPXPATH)" ] || $(UPXPATH) -q9 $@ armhf: $(BINARY).armhf.linux $(BINARY).armhf.linux: main.go # Building linux 32-bit ARM binary. - GOOS=linux GOARCH=arm GOARM=6 go build -o $@ -ldflags "-w -s $(VERSION_LDFLAGS)" + GOOS=linux GOARCH=arm GOARM=6 go build -o $@ -ldflags "-w -s $(VERSION_LDFLAGS) $(EXTRA_LDFLAGS) " + [ -z "$(UPXPATH)" ] || $(UPXPATH) -q9 $@ macos: $(BINARY).amd64.macos $(BINARY).amd64.macos: main.go - GOOS=darwin GOARCH=amd64 go build -o $@ -ldflags "-w -s $(VERSION_LDFLAGS)" + # Building darwin 64-bit x86 binary. + GOOS=darwin GOARCH=amd64 go build -o $@ -ldflags "-w -s $(VERSION_LDFLAGS) $(EXTRA_LDFLAGS) " + [ -z "$(UPXPATH)" ] || $(UPXPATH) -q9 $@ freebsd: $(BINARY).amd64.freebsd $(BINARY).amd64.freebsd: main.go - GOOS=freebsd GOARCH=amd64 go build -o $@ -ldflags "-w -s $(VERSION_LDFLAGS)" + GOOS=freebsd GOARCH=amd64 go build -o $@ -ldflags "-w -s $(VERSION_LDFLAGS) $(EXTRA_LDFLAGS) " freebsd386: $(BINARY).i386.freebsd $(BINARY).i386.freebsd: main.go - GOOS=freebsd GOARCH=386 go build -o $@ -ldflags "-w -s $(VERSION_LDFLAGS)" + GOOS=freebsd GOARCH=386 go build -o $@ -ldflags "-w -s $(VERSION_LDFLAGS) $(EXTRA_LDFLAGS) " + [ -z "$(UPXPATH)" ] || $(UPXPATH) -q9 $@ || true freebsdarm: $(BINARY).armhf.freebsd $(BINARY).armhf.freebsd: main.go - GOOS=freebsd GOARCH=arm go build -o $@ -ldflags "-w -s $(VERSION_LDFLAGS)" + GOOS=freebsd GOARCH=arm go build -o $@ -ldflags "-w -s $(VERSION_LDFLAGS) $(EXTRA_LDFLAGS) " exe: $(BINARY).amd64.exe windows: $(BINARY).amd64.exe -$(BINARY).amd64.exe: main.go +$(BINARY).amd64.exe: rsrc.syso main.go # Building windows 64-bit x86 binary. - GOOS=windows GOARCH=amd64 go build -o $@ -ldflags "-w -s $(VERSION_LDFLAGS)" + GOOS=windows GOARCH=amd64 go build -o $@ -ldflags "-w -s $(VERSION_LDFLAGS) $(EXTRA_LDFLAGS) $(WINDOWS_LDFLAGS)" + [ -z "$(UPXPATH)" ] || $(UPXPATH) -q9 $@ -# Packages +#################### +##### Packages ##### +#################### linux_packages: rpm deb rpm386 deb386 debarm rpmarm debarmhf rpmarmhf freebsd_packages: freebsd_pkg freebsd386_pkg freebsdarm_pkg +macapp: $(MACAPP).app +$(MACAPP).app: macos + @[ "$(MACAPP)" != "" ] || (echo "Must set 'MACAPP' in settings.sh!" && exit 1) + mkdir -p init/macos/$(MACAPP).app/Contents/MacOS + cp $(BINARY).amd64.macos init/macos/$(MACAPP).app/Contents/MacOS/$(MACAPP) + cp -rp init/macos/$(MACAPP).app $(MACAPP).app + rpm: $(BINARY)-$(RPMVERSION)-$(ITERATION).x86_64.rpm $(BINARY)-$(RPMVERSION)-$(ITERATION).x86_64.rpm: package_build_linux check_fpm @echo "Building 'rpm' package for $(BINARY) version '$(RPMVERSION)-$(ITERATION)'." @@ -212,13 +261,12 @@ $(BINARY)-$(VERSION)_$(ITERATION).armhf.txz: package_build_freebsd_arm check_fpm fpm -s dir -t freebsd $(PACKAGE_ARGS) -a arm -v $(VERSION) -p $(BINARY)-$(VERSION)_$(ITERATION).armhf.txz -C $< # Build an environment that can be packaged for linux. -package_build_linux: readme man plugins_linux_amd64 linux +package_build_linux: readme man plugins_linux_amd64 after-install-rendered.sh before-remove-rendered.sh linux # Building package environment for linux. - mkdir -p $@/usr/bin $@/etc/$(BINARY) $@/usr/share/man/man1 $@/usr/share/doc/$(BINARY) $@/usr/lib/$(BINARY)/web + mkdir -p $@/usr/bin $@/etc/$(BINARY) $@/usr/share/man/man1 $@/usr/share/doc/$(BINARY) $@/usr/lib/$(BINARY) # Copying the binary, config file, unit file, and man page into the env. cp $(BINARY).amd64.linux $@/usr/bin/$(BINARY) cp *.1.gz $@/usr/share/man/man1 - cp -r init/webserver/* $@/usr/lib/$(BINARY)/web/ rm -f $@/usr/lib/$(BINARY)/*.so [ ! -f *amd64.so ] || cp *amd64.so $@/usr/lib/$(BINARY)/ cp examples/$(CONFIG_FILE).example $@/etc/$(BINARY)/ @@ -229,6 +277,12 @@ package_build_linux: readme man plugins_linux_amd64 linux sed -e "s/{{BINARY}}/$(BINARY)/g" -e "s/{{DESC}}/$(DESC)/g" \ init/systemd/template.unit.service > $@/lib/systemd/system/$(BINARY).service +after-install-rendered.sh: + sed -e "s/{{BINARY}}/$(BINARY)/g" scripts/after-install.sh > after-install-rendered.sh + +before-remove-rendered.sh: + sed -e "s/{{BINARY}}/$(BINARY)/g" scripts/before-remove.sh > before-remove-rendered.sh + package_build_linux_386: package_build_linux linux386 mkdir -p $@ cp -r $ /dev/null || (echo "FPM missing. Install FPM: https://fpm.readthedocs.io/en/latest/installing.html" && false) -docker: - docker build -f init/docker/Dockerfile \ - --build-arg "BUILD_DATE=$(DATE)" \ - --build-arg "COMMIT=$(COMMIT)" \ - --build-arg "VERSION=$(VERSION)-$(ITERATION)" \ - --build-arg "LICENSE=$(LICENSE)" \ - --build-arg "DESC=$(DESC)" \ - --build-arg "URL=$(URL)" \ - --build-arg "VENDOR=$(VENDOR)" \ - --build-arg "AUTHOR=$(MAINT)" \ - --build-arg "BINARY=$(BINARY)" \ - --build-arg "SOURCE_URL=$(SOURCE_URL)" \ - --build-arg "CONFIG_FILE=$(CONFIG_FILE)" \ - --tag $(BINARY) . - -# This builds a Homebrew formula file that can be used to install this app from source. -# The source used comes from the released version on GitHub. This will not work with local source. -# This target is used by Travis CI to update the released Forumla when a new tag is created. -formula: $(BINARY).rb -v$(VERSION).tar.gz.sha256: - # Calculate the SHA from the Github source file. - curl -sL $(URL)/archive/v$(VERSION).tar.gz | openssl dgst -r -sha256 | tee $@ -$(BINARY).rb: v$(VERSION).tar.gz.sha256 init/homebrew/$(FORMULA).rb.tmpl - # Creating formula from template using sed. - sed -e "s/{{Version}}/$(VERSION)/g" \ - -e "s/{{Iter}}/$(ITERATION)/g" \ - -e "s/{{SHA256}}/$(shell head -c64 $<)/g" \ - -e "s/{{Desc}}/$(DESC)/g" \ - -e "s%{{URL}}%$(URL)%g" \ - -e "s%{{SOURCE_PATH}}%$(SOURCE_PATH)%g" \ - -e "s%{{SOURCE_URL}}%$(SOURCE_URL)%g" \ - -e "s%{{CONFIG_FILE}}%$(CONFIG_FILE)%g" \ - -e "s%{{Class}}%$(shell echo $(BINARY) | perl -pe 's/(?:\b|-)(\p{Ll})/\u$$1/g')%g" \ - init/homebrew/$(FORMULA).rb.tmpl | tee $(BINARY).rb - # That perl line turns hello-world into HelloWorld, etc. +################## +##### Extras ##### +################## plugins: $(patsubst %,%.so,$(PLUGINS)) $(patsubst %,%.so,$(PLUGINS)): @@ -324,44 +345,89 @@ plugins_darwin: $(patsubst %,%.darwin.so,$(PLUGINS)) $(patsubst %,%.darwin.so,$(PLUGINS)): GOOS=darwin go build -o $@ -ldflags "$(VERSION_LDFLAGS)" -buildmode=plugin ./plugins/$(patsubst %.darwin.so,%,$@) -# Extras - # Run code tests and lint. -test: +test: lint # Testing. go test -race -covermode=atomic ./... +lint: # Checking lint. - golangci-lint run $(GOLANGCI_LINT_ARGS) + GOOS=linux $(shell go env GOPATH)/bin/golangci-lint run $(GOLANGCI_LINT_ARGS) + GOOS=freebsd $(shell go env GOPATH)/bin/golangci-lint run $(GOLANGCI_LINT_ARGS) + GOOS=windows $(shell go env GOPATH)/bin/golangci-lint run $(GOLANGCI_LINT_ARGS) +# Mockgen and bindata are examples. +# Your `go generate` may require other tools; add them! -# Don't run this unless you're ready to debug untested vendored dependencies. -deps: - go get -u github.com/unifi-poller/unifi - go get -u github.com/unifi-poller/influxunifi - go get -u github.com/unifi-poller/promunifi - go get -u github.com/unifi-poller/lokiunifi - go get -u github.com/unifi-poller/webserver - go get -u github.com/unifi-poller/inputunifi - go get -u github.com/unifi-poller/poller +mockgen: $(shell go env GOPATH)/bin/mockgen +$(shell go env GOPATH)/bin/mockgen: + cd /tmp ; go get github.com/golang/mock/mockgen ; go install github.com/golang/mock/mockgen +bindata: $(shell go env GOPATH)/bin/go-bindata +$(shell go env GOPATH)/bin/go-bindata: + cd /tmp ; go get -u github.com/go-bindata/go-bindata/... ; go install github.com/go-bindata/go-bindata -# Homebrew stuff. macOS only. +generate: mockgen bindata + go generate ./... + +################## +##### Docker ##### +################## + +docker: + docker build -f init/docker/Dockerfile \ + --build-arg "BUILD_DATE=$(DATE)" \ + --build-arg "COMMIT=$(COMMIT)" \ + --build-arg "VERSION=$(VERSION)-$(ITERATION)" \ + --build-arg "LICENSE=$(LICENSE)" \ + --build-arg "DESC=$(DESC)" \ + --build-arg "VENDOR=$(VENDOR)" \ + --build-arg "AUTHOR=$(MAINT)" \ + --build-arg "BINARY=$(BINARY)" \ + --build-arg "SOURCE_URL=$(SOURCE_URL)" \ + --build-arg "CONFIG_FILE=$(CONFIG_FILE)" \ + --tag $(BINARY) . + +#################### +##### Homebrew ##### +#################### + +# This builds a Homebrew formula file that can be used to install this app from source. +# The source used comes from the released version on GitHub. This will not work with local source. +# This target is used by Travis CI to update the released Forumla when a new tag is created. +formula: $(BINARY).rb +v$(VERSION).tar.gz.sha256: + # Calculate the SHA from the Github source file. + curl -sL $(SOURCE_URL)/archive/v$(VERSION).tar.gz | openssl dgst -r -sha256 | tee $@ +$(BINARY).rb: v$(VERSION).tar.gz.sha256 init/homebrew/$(FORMULA).rb.tmpl + # Creating formula from template using sed. + sed -e "s/{{Version}}/$(VERSION)/g" \ + -e "s/{{Iter}}/$(ITERATION)/g" \ + -e "s/{{SHA256}}/$(shell head -c64 $<)/g" \ + -e "s/{{Desc}}/$(DESC)/g" \ + -e "s%{{SOURCE_URL}}%$(SOURCE_URL)%g" \ + -e "s%{{SOURCE_PATH}}%$(SOURCE_PATH)%g" \ + -e "s%{{CONFIG_FILE}}%$(CONFIG_FILE)%g" \ + -e "s%{{Class}}%$(shell echo $(BINARY) | perl -pe 's/(?:\b|-)(\p{Ll})/\u$$1/g')%g" \ + init/homebrew/$(FORMULA).rb.tmpl | tee $(BINARY).rb + # That perl line turns hello-world into HelloWorld, etc. # Used for Homebrew only. Other distros can create packages. install: man readme $(BINARY) plugins_darwin - @echo - Done Building! - + @echo - Done Building - @echo - Local installation with the Makefile is only supported on macOS. - @echo If you wish to install the application manually on Linux, check out the wiki: https://$(SOURCE_URL)/wiki/Installation @echo - Otherwise, build and install a package: make rpm -or- make deb - @echo See the Package Install wiki for more info: https://$(SOURCE_URL)/wiki/Package-Install @[ "$(shell uname)" = "Darwin" ] || (echo "Unable to continue, not a Mac." && false) @[ "$(PREFIX)" != "" ] || (echo "Unable to continue, PREFIX not set. Use: make install PREFIX=/usr/local ETC=/usr/local/etc" && false) @[ "$(ETC)" != "" ] || (echo "Unable to continue, ETC not set. Use: make install PREFIX=/usr/local ETC=/usr/local/etc" && false) # Copying the binary, config file, unit file, and man page into the env. - /usr/bin/install -m 0755 -d $(PREFIX)/bin $(PREFIX)/share/man/man1 $(ETC)/$(BINARY) $(PREFIX)/share/doc/$(BINARY) $(PREFIX)/lib/$(BINARY)/web + /usr/bin/install -m 0755 -d $(PREFIX)/bin $(PREFIX)/share/man/man1 $(ETC)/$(BINARY) $(PREFIX)/share/doc/$(BINARY) $(PREFIX)/lib/$(BINARY) + /usr/bin/install -m 0755 -d $(PREFIX)/lib/$(BINARY)/web/static/{css,js,images} /usr/bin/install -m 0755 -cp $(BINARY) $(PREFIX)/bin/$(BINARY) - /usr/bin/install -m 0644 -cp $(BINARY).1.gz $(PREFIX)/share/man/man1/ + /usr/bin/install -m 0644 -cp $(BINARY).1.gz $(PREFIX)/share/man/man1 /usr/bin/install -m 0644 -cp examples/$(CONFIG_FILE).example $(ETC)/$(BINARY)/ - /usr/bin/install -m 0644 -cp init/webserver/* $(PREFIX)/lib/$(BINARY)/web/ + /usr/bin/install -m 0644 -cp init/webserver/index.html $(PREFIX)/lib/$(BINARY)/web/index.html + /usr/bin/install -m 0644 -cp init/webserver/static/css/* $(PREFIX)/lib/$(BINARY)/web/static/css/ + /usr/bin/install -m 0644 -cp init/webserver/static/js/* $(PREFIX)/lib/$(BINARY)/web/static/js/ + /usr/bin/install -m 0644 -cp init/webserver/static/images/* $(PREFIX)/lib/$(BINARY)/web/static/images/ [ -f $(ETC)/$(BINARY)/$(CONFIG_FILE) ] || /usr/bin/install -m 0644 -cp examples/$(CONFIG_FILE).example $(ETC)/$(BINARY)/$(CONFIG_FILE) /usr/bin/install -m 0644 -cp LICENSE *.html examples/* $(PREFIX)/share/doc/$(BINARY)/ diff --git a/README.md b/README.md index cc8b9b35..9ea920eb 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,6 @@ [![discord](https://badgen.net/badge/icon/Discord?color=0011ff&label&icon=https://simpleicons.now.sh/discord/eee "Ubiquiti Discord")](https://discord.gg/KnyKYt2) -[![twitter](https://badgen.net/twitter/follow/TwitchCaptain?icon=https://simpleicons.now.sh/twitter/0099ff&label=TwitchCaptain&color=0116ff "TwitchCaptain @ Twitter")](https://twitter.com/TwitchCaptain) [![grafana](https://badgen.net/https/golift.io/bd/grafana/dashboard-downloads/11310,10419,10414,10415,10416,10417,10418,11311,11312,11313,11314,11315?icon=https://simpleicons.now.sh/grafana/ED7F38&color=0011ff "Grafana Dashboard Downloads")](http://grafana.com/dashboards?search=unifi-poller) [![pulls](https://badgen.net/docker/pulls/golift/unifi-poller?icon=https://simpleicons.now.sh/docker/38B1ED&label=pulls&color=0011ff "Docker Pulls")](https://hub.docker.com/r/golift/unifi-poller) [![DLs](https://img.shields.io/github/downloads/unifi-poller/unifi-poller/total.svg?logo=github&color=0116ff "GitHub Downloads")](https://www.somsubhra.com/github-release-stats/?username=unifi-poller&repository=unifi-poller) diff --git a/examples/up.conf.example b/examples/up.conf.example index d7eab6d1..850d5da8 100644 --- a/examples/up.conf.example +++ b/examples/up.conf.example @@ -28,6 +28,8 @@ ssl_key_path = "" # Errors are rare. Setting this to true will report them to Prometheus. report_errors = false + ## Record data for disabled or down (unlinked) switch ports. + dead_ports = false [influxdb] disable = false @@ -46,6 +48,8 @@ # Setting this to something lower may lead to "zeros" in your data. # If you're getting zeros now, set this to "1m" interval = "30s" + ## Record data for disabled or down (unlinked) switch ports. + dead_ports = false # To enable output of UniFi Events to Loki, add a URL; it's disabled otherwise. # User, pass and tenant_id are optional and most folks wont set them. @@ -65,7 +69,7 @@ # wish to use SSL, provide SSL cert and key paths. This interface is currently # read-only; it just displays information, like logs, devices and clients. # Notice: Enabling the web server with many sites will increase memory usage. -# This is a new feature. Feedback welcome! +# This is a new feature and lacks a UI, enabling only recommended for testing. [webserver] enable = false port = 37288 @@ -113,7 +117,7 @@ # Password for UniFi controller user (above). # If the password provided here begins with file:// then the password is read in from # the file path that follows the file:// prefix. ex: file:///etc/unifi/password.file - # ex: file:///etc/unifi/passwd.file + # ex: file:///etc/unifi/passwd.file, windows: file://C:\\UserData\\Unifi\\Passwd.txt pass = "unifipoller" # If the controller has more than one site, specify which sites to poll here. @@ -123,7 +127,7 @@ # Enable collection of site data. This data powers the Network Sites dashboard. # It's not valuable to everyone and setting this to false will save resources. - #save_sites = true + save_sites = true # Hash, with md5, client names and MAC addresses. This attempts to protect # personally identifiable information. Most users won't want to enable this. @@ -163,11 +167,22 @@ # it's cool data. Please provide feedback on your experience with this feature. save_dpi = false + ## Enabling save_rogue stores even more data in your time series databases. + ## This saves neighboring access point metrics in a dedicated table or namespace. + save_rogue = false + # If your UniFi controller has a valid SSL certificate (like lets encrypt), # you can enable this option to validate it. Otherwise, any SSL certificate is # valid. If you don't know if you have a valid SSL cert, then you don't have one. verify_ssl = false + ## You may provide a list of SSL cert files (PEM format) that you expect your + ## controller to use. As long as one of the certs you provide here shows up in + ## the cert trust chain the controller presents it will be accepted and allowed. + ## These files may be re-read while poller is running. + ## Example: ssl_cert_paths = ["/path/to/cert.pem", "/another/cert.pem"] + ssl_cert_paths = [] + # The following is optional and used for configurations with multiple UniFi controllers. # You may repeat the following [[unifi.controller]] section as many times as needed to @@ -186,4 +201,6 @@ # save_alarms = false # save_anomalies = false # save_dpi = false +# save_rogue = false # verify_ssl = false +# ssl_cert_paths = [] diff --git a/go.mod b/go.mod index bdc49969..5590abc4 100644 --- a/go.mod +++ b/go.mod @@ -1,27 +1,20 @@ module github.com/unifi-poller/unifi-poller -go 1.14 +go 1.16 require ( - github.com/github/hub v2.11.2+incompatible // indirect - github.com/golang/snappy v0.0.1 // indirect - github.com/influxdata/influxdb1-client v0.0.0-20200515024757-02f0bf5dbca3 // indirect - github.com/mattn/go-colorable v0.1.4 // indirect - github.com/mattn/go-isatty v0.0.11 // indirect - github.com/prometheus/client_golang v1.7.1 // indirect - github.com/prometheus/common v0.10.0 // indirect - github.com/prometheus/procfs v0.1.3 // indirect - github.com/russross/blackfriday v2.0.0+incompatible // indirect - github.com/shurcooL/sanitized_anchor_name v1.0.0 // indirect - github.com/spf13/pflag v1.0.5 // indirect - github.com/unifi-poller/influxunifi v0.0.10-0.20200720041222-5932808647e8 - github.com/unifi-poller/inputunifi v0.0.8-0.20200719194021-3d07f5886bf0 - github.com/unifi-poller/lokiunifi v0.0.0-20200720041215-6b4aaa3bd40f - github.com/unifi-poller/poller v0.0.8-0.20200720041241-4068a5bfcdfd - github.com/unifi-poller/promunifi v0.0.9-0.20200720041230-cd67f20aa182 - github.com/unifi-poller/unifi v0.0.6-0.20200628213309-a22ea217874f - golang.org/x/net v0.0.0-20200625001655-4c5254603344 // indirect - golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae // indirect - golift.io/cnfg v0.0.5 // indirect - google.golang.org/protobuf v1.25.0 // indirect + github.com/golang/protobuf v1.5.1 // indirect + github.com/influxdata/influxdb1-client v0.0.0-20200827194710-b269163b24ab // indirect + github.com/prometheus/client_golang v1.10.0 // indirect + github.com/prometheus/common v0.19.0 // indirect + github.com/unifi-poller/influxunifi v0.0.0-20210322065128-7bc73454c06e + github.com/unifi-poller/inputunifi v0.0.0-20210322032017-2bf529b57d4d + github.com/unifi-poller/lokiunifi v0.0.0-20210315080246-0270b8174e62 + github.com/unifi-poller/poller v0.0.0-20210315075554-47d92433b172 + github.com/unifi-poller/promunifi v0.0.0-20210322055855-07f7eb3765d6 + golang.org/x/crypto v0.0.0-20210317152858-513c2a44f670 // indirect + golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4 // indirect + golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4 // indirect + golang.org/x/term v0.0.0-20210317153231-de623e64d2a6 // indirect + gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect ) diff --git a/go.sum b/go.sum index bfe78cd2..0fd9d689 100644 --- a/go.sum +++ b/go.sum @@ -1,30 +1,77 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= +github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= +github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= +github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= +github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= +github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= +github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= +github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= +github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= +github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= +github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= +github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= +github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= +github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +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/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= +github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= +github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= +github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= +github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/github/hub v2.11.2+incompatible/go.mod h1:zQrzJEdze2hfWJDgktd/L6sROjAdCThFrzjbxw4keTs= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= +github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= +github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -35,268 +82,366 @@ github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrU github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.1 h1:jAbXjIeW2ZSW2AwFxlGTDoc2CjI2XujLkV3ArsZFCvc= +github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/gorilla/mux v1.7.4 h1:VuZ8uybHlWmqV03+zRzdwKL4tUnIp1MAQtp1mIFE1bc= -github.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/influxdata/influxdb1-client v0.0.0-20200515024757-02f0bf5dbca3 h1:k3/6a1Shi7GGCp9QpyYuXsMM6ncTOjCzOE9Fd6CDA+Q= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= +github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= +github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= +github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= +github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= +github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= +github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= +github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= +github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= +github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/influxdata/influxdb1-client v0.0.0-20200515024757-02f0bf5dbca3/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= +github.com/influxdata/influxdb1-client v0.0.0-20200827194710-b269163b24ab h1:HqW4xhhynfjrtEiiSGcQUd6vrK23iMam1FO8rI7mwig= +github.com/influxdata/influxdb1-client v0.0.0-20200827194710-b269163b24ab/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= +github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= +github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= +github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= +github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= +github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= +github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= 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.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= +github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= +github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= +github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= +github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= +github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k= +github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= +github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= +github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= +github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= +github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= +github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= +github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= +github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= +github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA= +github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= +github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= +github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= +github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM= +github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= +github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= +github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= +github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= +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/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= +github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.6.0/go.mod h1:ZLOG9ck3JLRdB5MgO8f+lLTe83AXG6ro35rLTxvnIl4= -github.com/prometheus/client_golang v1.7.0 h1:wCi7urQOGBsYcQROHqpUUX4ct84xp40t9R9JX0FuA/U= -github.com/prometheus/client_golang v1.7.0/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.7.1 h1:NTGy1Ja9pByO+xAeH/qiWnLrKtr3hJPNjaVUwnjpdpA= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= +github.com/prometheus/client_golang v1.9.0/go.mod h1:FqZLKOZnGdFAhOK4nqGHa7D66IdsO+O441Eve7ptJDU= +github.com/prometheus/client_golang v1.10.0 h1:/o0BDeWzLWXNZ+4q5gXltUvaMpJqckTa+jTNoB+z4cg= +github.com/prometheus/client_golang v1.10.0/go.mod h1:WJM3cc3yu7XKBKa/I8WeZm+V3eltZnBwfENSU7mdogU= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= -github.com/prometheus/common v0.10.0 h1:RyRA7RzGXQZiW+tGMr7sxa85G1z0yOpM1qq5c8lNawc= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= +github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= +github.com/prometheus/common v0.18.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= +github.com/prometheus/common v0.19.0 h1:Itb4+NjG9wRdkAWgVucbM/adyIXxEhbw0866e0uZE6A= +github.com/prometheus/common v0.19.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.0.11/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.1.1/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.1.2/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.1.3 h1:F0+tqvhOksq22sc6iCHF5WGlWjdwj92p0udFh1VFBS8= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/russross/blackfriday v2.0.0+incompatible/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.6.0 h1:mxy4L2jP6qMonqmq+aTtOx1ifVWUgG/TAmntgbh3xv4= +github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= -github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= +github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= +github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/pflag v1.0.6-0.20201009195203-85dd5c8bc61c h1:zqmyTlQyufRC65JnImJ6H1Sf7BDj8bG31EV919NVEQc= +github.com/spf13/pflag v1.0.6-0.20201009195203-85dd5c8bc61c/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= +github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= +github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/unifi-poller/influxunifi v0.0.10-0.20200626040446-8fe783775415 h1:0rYv6/Ykayeyl9zzCERwrwrWa15ES2/ctDmmr0paQ9c= -github.com/unifi-poller/influxunifi v0.0.10-0.20200626040446-8fe783775415/go.mod h1:HO6WuWoUwuz9Hj4m9hJ8Sh7U9O1Sd62FPV+loEdCDqY= -github.com/unifi-poller/influxunifi v0.0.10-0.20200628124841-cb2762a27193 h1:GZsJAFb2ihLSluA6yVQCbfu0msFIepU8Aa4cuID0ymU= -github.com/unifi-poller/influxunifi v0.0.10-0.20200628124841-cb2762a27193/go.mod h1:ZlpigLCYu5/l1Wu8nYEIFNWZnAqg+YV3mbSuZCmcsJE= -github.com/unifi-poller/influxunifi v0.0.10-0.20200628212559-02c131d5ab9f h1:wY8dYe9PRRh99MmNP08AXXR+XBRjiPo163QIqUoE5qg= -github.com/unifi-poller/influxunifi v0.0.10-0.20200628212559-02c131d5ab9f/go.mod h1:qbHllpoCWUfhk+WDvPluqn9k+czl4x16TefjdaCcmTc= -github.com/unifi-poller/influxunifi v0.0.10-0.20200630101653-6c02bd48f4d4 h1:FGp+6E7B2nBmH44EnjEY1qb88C3a9osyU5WPgzCtqBQ= -github.com/unifi-poller/influxunifi v0.0.10-0.20200630101653-6c02bd48f4d4/go.mod h1:qbHllpoCWUfhk+WDvPluqn9k+czl4x16TefjdaCcmTc= -github.com/unifi-poller/influxunifi v0.0.10-0.20200630103608-fb25b5bc3fa7 h1:UZ18xCI8bCSBhmeUFYJb78vwAjf8htsxbSI05GZvQIA= -github.com/unifi-poller/influxunifi v0.0.10-0.20200630103608-fb25b5bc3fa7/go.mod h1:qbHllpoCWUfhk+WDvPluqn9k+czl4x16TefjdaCcmTc= -github.com/unifi-poller/influxunifi v0.0.10-0.20200703094640-5683cb4d44fb h1:lD5W/5JXoU+B6ZHueZMzSWSNlzeIwIYtEYG9LInUi/E= -github.com/unifi-poller/influxunifi v0.0.10-0.20200703094640-5683cb4d44fb/go.mod h1:qbHllpoCWUfhk+WDvPluqn9k+czl4x16TefjdaCcmTc= -github.com/unifi-poller/influxunifi v0.0.10-0.20200707102535-eac44b814550 h1:a8oJkKF/3EsIhgvhMvST0kPhW6PH7eqcpgjj2UQUyp8= -github.com/unifi-poller/influxunifi v0.0.10-0.20200707102535-eac44b814550/go.mod h1:WqlfO21XwKf/axW2RclNpXYMOcYCtazhJMwnGKyZvMw= -github.com/unifi-poller/influxunifi v0.0.10-0.20200719070803-1fb36a5a9829 h1:Rd8envlb8mzu5a/hC3pS0hyqcdkoyEGRiCQluEHDh3E= -github.com/unifi-poller/influxunifi v0.0.10-0.20200719070803-1fb36a5a9829/go.mod h1:sYwt5HAR+ZQizq98BTeIXjujd5Ua6rbUhWui76xgF1A= -github.com/unifi-poller/influxunifi v0.0.10-0.20200720041222-5932808647e8 h1:8qMoVDUTmxMqYEcggnmRZQnUfue7/Fh+Z77IhyJIFWU= -github.com/unifi-poller/influxunifi v0.0.10-0.20200720041222-5932808647e8/go.mod h1:sYwt5HAR+ZQizq98BTeIXjujd5Ua6rbUhWui76xgF1A= -github.com/unifi-poller/inputunifi v0.0.8-0.20200626052630-dabd0510075e h1:gJyoFh49X/9Q8DxsFe2H48DjfZ46/Aw/GBxl7izKDEo= -github.com/unifi-poller/inputunifi v0.0.8-0.20200626052630-dabd0510075e/go.mod h1:nFr8uB4zJtCLiQvYPypGK3aWfQ9y4cC4iIeS9PyecrU= -github.com/unifi-poller/inputunifi v0.0.8-0.20200628114724-8b60ff573a49 h1:ce5cXC4eWs5TfrjvlN8ZEemKcnv7KfbUbzXDr2fHnso= -github.com/unifi-poller/inputunifi v0.0.8-0.20200628114724-8b60ff573a49/go.mod h1:Rb9C8xi/qgxOO/IbwyO4Uu77qVkIhGiQv4cA2jnmNMI= -github.com/unifi-poller/inputunifi v0.0.8-0.20200628124735-b6af0039a275 h1:pbC+9LglWSAg6EE0AQPxk/Z2WowrVvEzH6cVVi/mcGo= -github.com/unifi-poller/inputunifi v0.0.8-0.20200628124735-b6af0039a275/go.mod h1:Rb9C8xi/qgxOO/IbwyO4Uu77qVkIhGiQv4cA2jnmNMI= -github.com/unifi-poller/inputunifi v0.0.8-0.20200629073944-889691ff1096 h1:0e66nCzeonQtrzX/zdNJdQHcoo6z2/rCmUaiAJU0tIM= -github.com/unifi-poller/inputunifi v0.0.8-0.20200629073944-889691ff1096/go.mod h1:iJT8Y3KwSV/ceqOikamlhw2c0EMHTFv47TxKKFThx8I= -github.com/unifi-poller/inputunifi v0.0.8-0.20200629074959-35d6603f1831 h1:fBPfSPtGCmpv5BMwk+oorS672fd7L8vFbX/DTOC+2C4= -github.com/unifi-poller/inputunifi v0.0.8-0.20200629074959-35d6603f1831/go.mod h1:iJT8Y3KwSV/ceqOikamlhw2c0EMHTFv47TxKKFThx8I= -github.com/unifi-poller/inputunifi v0.0.8-0.20200630101705-1f36fb078fcb h1:pMNmEeAaMpNvO1V96icOHqkVjbnwUJ1asCuoKIMdgac= -github.com/unifi-poller/inputunifi v0.0.8-0.20200630101705-1f36fb078fcb/go.mod h1:iJT8Y3KwSV/ceqOikamlhw2c0EMHTFv47TxKKFThx8I= -github.com/unifi-poller/inputunifi v0.0.8-0.20200630105934-93e63a1b6752 h1:CPPu1EyUmRRNZHTIfYu9MiKABOBdOf7JgqjL8KF62pg= -github.com/unifi-poller/inputunifi v0.0.8-0.20200630105934-93e63a1b6752/go.mod h1:iJT8Y3KwSV/ceqOikamlhw2c0EMHTFv47TxKKFThx8I= -github.com/unifi-poller/inputunifi v0.0.8-0.20200704070012-feea252994f2 h1:mhjgdc2uAm4941rOxuHGalXf4Gm7VlkfPUextl1+Vfo= -github.com/unifi-poller/inputunifi v0.0.8-0.20200704070012-feea252994f2/go.mod h1:06CBPG9YAXgiGHhIk938uquEc3PQu5ysx8O2X1fFwSM= -github.com/unifi-poller/inputunifi v0.0.8-0.20200705100128-2a4815b03dfe h1:nImldZZrNb6WEmglam2IzTppmEKpsDn8Dm4LDxkV0D8= -github.com/unifi-poller/inputunifi v0.0.8-0.20200705100128-2a4815b03dfe/go.mod h1:06CBPG9YAXgiGHhIk938uquEc3PQu5ysx8O2X1fFwSM= -github.com/unifi-poller/inputunifi v0.0.8-0.20200706074253-c9b60d7a4386 h1:NTC5ejGxV8zJQPiXC4JcIVwOlccWJFstKThmhvyolPU= -github.com/unifi-poller/inputunifi v0.0.8-0.20200706074253-c9b60d7a4386/go.mod h1:06CBPG9YAXgiGHhIk938uquEc3PQu5ysx8O2X1fFwSM= -github.com/unifi-poller/inputunifi v0.0.8-0.20200707102527-ecb82ee5d9f6 h1:MyjVlGVaO5UhXbKeOyPMGGrHZzTuNqxBKLpblzkYvIw= -github.com/unifi-poller/inputunifi v0.0.8-0.20200707102527-ecb82ee5d9f6/go.mod h1:mag/wh3jcfGeYa1Xkc0RsnR/SzB9JqVOBfwb2+ouZc4= -github.com/unifi-poller/inputunifi v0.0.8-0.20200719070501-75a24241ef36 h1:BOP5EGT+5EoM3gfvwpBNF97fKoX7oTHzprRRRe6rXeI= -github.com/unifi-poller/inputunifi v0.0.8-0.20200719070501-75a24241ef36/go.mod h1:79iZjsCmupDPXq/ffNCauAyqBJxug/h2MGJLt0pTsmU= -github.com/unifi-poller/inputunifi v0.0.8-0.20200719194021-3d07f5886bf0 h1:Jfz3i2jLZMGdvbDhf9ESOtXYoS+uIeGJu+w0sMrQib4= -github.com/unifi-poller/inputunifi v0.0.8-0.20200719194021-3d07f5886bf0/go.mod h1:79iZjsCmupDPXq/ffNCauAyqBJxug/h2MGJLt0pTsmU= -github.com/unifi-poller/lokiunifi v0.0.0-20200623055806-bef9501a2240 h1:5TkGeJiY4IvsQ29LvvoJ45zDpaaGIigKveyuodSWhcY= -github.com/unifi-poller/lokiunifi v0.0.0-20200623055806-bef9501a2240/go.mod h1:F1xYSsn1D+sVgvVuL8FhjMj8GTFbbSTxxEi7Bg6DzG8= -github.com/unifi-poller/lokiunifi v0.0.0-20200626040346-12af563d2a99/go.mod h1:7+uUJT6nnXVPad/Omsj+lPD80Cshg4L8TPUkV72JNM8= -github.com/unifi-poller/lokiunifi v0.0.0-20200626052645-b0336442237e h1:MoyVcBNks+p1tYCu67UyQycyHpeCqzafWpjMir/Mjh8= -github.com/unifi-poller/lokiunifi v0.0.0-20200626052645-b0336442237e/go.mod h1:7+uUJT6nnXVPad/Omsj+lPD80Cshg4L8TPUkV72JNM8= -github.com/unifi-poller/lokiunifi v0.0.0-20200628124714-778a1a77f311 h1:WBuMSFL4YpkRtwynKZU6+OcKWtuxnjenJafJDv8516o= -github.com/unifi-poller/lokiunifi v0.0.0-20200628124714-778a1a77f311/go.mod h1:vmXYivAPW6jBzKAwBYsBcNeuROxaar6gvlsoZ3RQZhs= -github.com/unifi-poller/lokiunifi v0.0.0-20200628212531-964d320957e4 h1:FA4rcjM648oDMn/Q7dH8j4Sj7bdQV9LQS8K77YP3Ye8= -github.com/unifi-poller/lokiunifi v0.0.0-20200628212531-964d320957e4/go.mod h1:dbV8ptSPzLrerEJxvPYhDk+HRn+GMYv1xaqgUOoretg= -github.com/unifi-poller/lokiunifi v0.0.0-20200707102508-fa1084a386c8 h1:6eSiVjtO9E6hGE30B0QQ8TuIb3+35BnQXlm52xPYqFg= -github.com/unifi-poller/lokiunifi v0.0.0-20200707102508-fa1084a386c8/go.mod h1:qaf/3nErsTc9XzOgp3vX6JmYxR0GbhRCBbpI9NcUnJA= -github.com/unifi-poller/lokiunifi v0.0.0-20200719070442-d6d2338713d6 h1:NQBxe9MwR8k12L3+FGbv8WpKV9RzqcB6F8jJAwGjN2o= -github.com/unifi-poller/lokiunifi v0.0.0-20200719070442-d6d2338713d6/go.mod h1:XxvXFCXKxeTG0UNpQPh6JQ5vmHuug6kAkXWxTsFBg04= -github.com/unifi-poller/lokiunifi v0.0.0-20200720041215-6b4aaa3bd40f h1:piHd4wzOw/zpYFGT0HeA8JgmBq6Ublvi+gk383c7lAg= -github.com/unifi-poller/lokiunifi v0.0.0-20200720041215-6b4aaa3bd40f/go.mod h1:XxvXFCXKxeTG0UNpQPh6JQ5vmHuug6kAkXWxTsFBg04= -github.com/unifi-poller/poller v0.0.8-0.20200621214016-5d1ed3324a46/go.mod h1:pJ/MeYaakLOOpbyc7s4zeZ92UzNK/rir5jkA7t5jIjo= -github.com/unifi-poller/poller v0.0.8-0.20200622041812-dd79a3e3073e h1:pSkgIalhDdb1N0/9uTAVh7emolfFxjCxo68IXIsZzII= -github.com/unifi-poller/poller v0.0.8-0.20200622041812-dd79a3e3073e/go.mod h1:pJ/MeYaakLOOpbyc7s4zeZ92UzNK/rir5jkA7t5jIjo= -github.com/unifi-poller/poller v0.0.8-0.20200626082958-a9a7092a5684 h1:r1B8GoI47czgGnQ7WY89qlSKqSE1d1pQmcLfdXVW/+Y= -github.com/unifi-poller/poller v0.0.8-0.20200626082958-a9a7092a5684/go.mod h1:pJ/MeYaakLOOpbyc7s4zeZ92UzNK/rir5jkA7t5jIjo= -github.com/unifi-poller/poller v0.0.8-0.20200627080311-6a024f8220dd h1:1o5CdAa7HxUHDXDV6N8SGAtKu3GeSkxFJOMkHHm6MVk= -github.com/unifi-poller/poller v0.0.8-0.20200627080311-6a024f8220dd/go.mod h1:pJ/MeYaakLOOpbyc7s4zeZ92UzNK/rir5jkA7t5jIjo= -github.com/unifi-poller/poller v0.0.8-0.20200627082257-8f95941300de h1:GQqHkp9+jdesjCra28BPk10H3pJJ/9uVNzT1JRUP2K4= -github.com/unifi-poller/poller v0.0.8-0.20200627082257-8f95941300de/go.mod h1:pJ/MeYaakLOOpbyc7s4zeZ92UzNK/rir5jkA7t5jIjo= -github.com/unifi-poller/poller v0.0.8-0.20200628114359-a40c51a9891d h1:wS7GngTfpX4Ngmm2+r1uJsECmiAglSOzEInwF/S4dW8= -github.com/unifi-poller/poller v0.0.8-0.20200628114359-a40c51a9891d/go.mod h1:fObadG7weiVnSpFu8pFpGfo2bYYFc7hUMe770FovSc8= -github.com/unifi-poller/poller v0.0.8-0.20200628130947-4a647d6555ef h1:iUI85Mx7ee5MIdk4Ge9eDLovge10rM/j50PHc24+N08= -github.com/unifi-poller/poller v0.0.8-0.20200628130947-4a647d6555ef/go.mod h1:fObadG7weiVnSpFu8pFpGfo2bYYFc7hUMe770FovSc8= -github.com/unifi-poller/poller v0.0.8-0.20200628131550-26430cac16c1 h1:SHKYtAu4yB5bVhMuRkoHr8Ss1Ffu5dKLJ13rGWufLFI= -github.com/unifi-poller/poller v0.0.8-0.20200628131550-26430cac16c1/go.mod h1:fObadG7weiVnSpFu8pFpGfo2bYYFc7hUMe770FovSc8= -github.com/unifi-poller/poller v0.0.8-0.20200707102001-a78974b290b0 h1:PRhR0XJ+ajhYOnzRhIdgbjvbASteLA+NRTrvQUubJi4= -github.com/unifi-poller/poller v0.0.8-0.20200707102001-a78974b290b0/go.mod h1:MiuDGaMWDOAv2SqzqgV5P8t8KWzN00say/Cd5LbiFTI= -github.com/unifi-poller/poller v0.0.8-0.20200719070110-8d67d8eb73d5 h1:16SKHzP5jNBiMhiVxZwGwewSvdP2f5lUToT474roNn0= -github.com/unifi-poller/poller v0.0.8-0.20200719070110-8d67d8eb73d5/go.mod h1:MiuDGaMWDOAv2SqzqgV5P8t8KWzN00say/Cd5LbiFTI= -github.com/unifi-poller/poller v0.0.8-0.20200719081209-e80aa9ed401d h1:sOaaR5ylJTjbv+RSO7fOXnKPzw5PDtyzz/Z1P8qyDZk= -github.com/unifi-poller/poller v0.0.8-0.20200719081209-e80aa9ed401d/go.mod h1:MiuDGaMWDOAv2SqzqgV5P8t8KWzN00say/Cd5LbiFTI= -github.com/unifi-poller/poller v0.0.8-0.20200720031633-f6348e2bc478 h1:d8lKimaUqRMFthCLmAE/DdYdzGV1KYF1b8V7T5F9Ixg= -github.com/unifi-poller/poller v0.0.8-0.20200720031633-f6348e2bc478/go.mod h1:MiuDGaMWDOAv2SqzqgV5P8t8KWzN00say/Cd5LbiFTI= -github.com/unifi-poller/poller v0.0.8-0.20200720041241-4068a5bfcdfd h1:BrKxti28eGeBIQJf1gtNE8kUf3wE92ToAWKDNRMMmIw= -github.com/unifi-poller/poller v0.0.8-0.20200720041241-4068a5bfcdfd/go.mod h1:MiuDGaMWDOAv2SqzqgV5P8t8KWzN00say/Cd5LbiFTI= -github.com/unifi-poller/promunifi v0.0.9-0.20200623073250-24621ebb306a h1:7CmCHHFUrxzaGVMRINmplAosW8BNXlWIPm05LxCPClU= -github.com/unifi-poller/promunifi v0.0.9-0.20200623073250-24621ebb306a/go.mod h1:mlvfj4DRFVx12ewi6BcT4XOG2bxC7sFasl08RlYih8Y= -github.com/unifi-poller/promunifi v0.0.9-0.20200628124811-17c74bc966ba h1:JkCbMKjUORMImfKJ0uZFomVsPJjR8fUI+tZzpnbeGds= -github.com/unifi-poller/promunifi v0.0.9-0.20200628124811-17c74bc966ba/go.mod h1:ibeILb7ndzfT+vzucBRCTCLv19TaKOcds8sKGv2ZwGA= -github.com/unifi-poller/promunifi v0.0.9-0.20200628212620-13ccb1ce3beb h1:G8j4APUkcuogff5ihjeemJqeI7Hcwk3s598xbF63n9w= -github.com/unifi-poller/promunifi v0.0.9-0.20200628212620-13ccb1ce3beb/go.mod h1:hq4eItu10nOutQ0q/BRf1Mn/IvfRP+n0DlWsYPBlbm4= -github.com/unifi-poller/promunifi v0.0.9-0.20200630103619-c2b0b27aa0c7 h1:0s8Z4xKUjGeT3qZ4/SyyzgK0KodYPxLx3zooe45+nGY= -github.com/unifi-poller/promunifi v0.0.9-0.20200630103619-c2b0b27aa0c7/go.mod h1:hq4eItu10nOutQ0q/BRf1Mn/IvfRP+n0DlWsYPBlbm4= -github.com/unifi-poller/promunifi v0.0.9-0.20200707102516-6a68904c123a h1:9GrgOUGk/cZOMr2v9AnolxT2yncsahxo8K7qNFw4g9s= -github.com/unifi-poller/promunifi v0.0.9-0.20200707102516-6a68904c123a/go.mod h1:kEA9Ih8V4PsO7pg2WPlr06wHY7DC9HeUmQ/RDS1vjf0= -github.com/unifi-poller/promunifi v0.0.9-0.20200719070533-e4b440d85f53 h1:WmRxd8grVH80h5fqtc8U1oQ0SqYh3oQO7lXj+qlr4Gg= -github.com/unifi-poller/promunifi v0.0.9-0.20200719070533-e4b440d85f53/go.mod h1:c6WkMKQzC6XgNdJHldBUHsMGzqPN9kNXWIMwortw3N4= -github.com/unifi-poller/promunifi v0.0.9-0.20200719071215-657f39d26691 h1:CivVAOaiLfFlaRhRb20YRtRitUHZncUI5Z7nyg7wL6E= -github.com/unifi-poller/promunifi v0.0.9-0.20200719071215-657f39d26691/go.mod h1:c6WkMKQzC6XgNdJHldBUHsMGzqPN9kNXWIMwortw3N4= -github.com/unifi-poller/promunifi v0.0.9-0.20200720041230-cd67f20aa182 h1:gLNy6aaQwgDESLxqXhqiPsEGg/fWkBFS43vIsNh34sA= -github.com/unifi-poller/promunifi v0.0.9-0.20200720041230-cd67f20aa182/go.mod h1:c6WkMKQzC6XgNdJHldBUHsMGzqPN9kNXWIMwortw3N4= -github.com/unifi-poller/unifi v0.0.5-0.20200620103801-b927287ea1cd/go.mod h1:L1kMRH2buZhB31vZnRC1im7Tk/4uD3ET4biwl2faYy8= -github.com/unifi-poller/unifi v0.0.6-0.20200625090439-421046871a37 h1:T2y8JWkjZd1vz2ZKu4vmmAk9s6PUwupuTldwhfww5xY= -github.com/unifi-poller/unifi v0.0.6-0.20200625090439-421046871a37/go.mod h1:L1kMRH2buZhB31vZnRC1im7Tk/4uD3ET4biwl2faYy8= -github.com/unifi-poller/unifi v0.0.6-0.20200628213309-a22ea217874f h1:5aLy4Ac0vFhaEikq04oPAFqhygVv0lq77/ZJ4aBEnkc= -github.com/unifi-poller/unifi v0.0.6-0.20200628213309-a22ea217874f/go.mod h1:uqBaNCon8FTw6nwGsAYHz/HwBgEYepS0XB5XW+OdBts= -github.com/unifi-poller/webserver v0.0.0-20200626113232-24ae3f02067d h1:iTp4YWGqBmDRxsMjLnJymmDzhO9b+Jvjly7hqLJnPdY= -github.com/unifi-poller/webserver v0.0.0-20200626113232-24ae3f02067d/go.mod h1:Ydcz7GN8uSpIoAI7h7+v89Q4peWaeq7jIAfsG0vfQKE= -github.com/unifi-poller/webserver v0.0.0-20200627075529-02f6c576d7bc h1:O5qrJOu2E+WB5b5vSDDFrxW/Y7KBm+QdTRHc2Bad30Y= -github.com/unifi-poller/webserver v0.0.0-20200627075529-02f6c576d7bc/go.mod h1:0kv/xON8tow9YE0ZmODW0Migxx2Q7vZZ+c5OVTW/kfU= -github.com/unifi-poller/webserver v0.0.0-20200627075622-78851a262139 h1:JpKj/VMBxErObszX55iJnHRnbMHkEJ2hmzOXY6sDa9g= -github.com/unifi-poller/webserver v0.0.0-20200627075622-78851a262139/go.mod h1:0kv/xON8tow9YE0ZmODW0Migxx2Q7vZZ+c5OVTW/kfU= -github.com/unifi-poller/webserver v0.0.0-20200627080325-7ddac80e969e h1:whQsHnJJZvH0c6UyQwQcxA6dKXTrkLUAVxAjlVWq6Io= -github.com/unifi-poller/webserver v0.0.0-20200627080325-7ddac80e969e/go.mod h1:0kv/xON8tow9YE0ZmODW0Migxx2Q7vZZ+c5OVTW/kfU= -github.com/unifi-poller/webserver v0.0.0-20200628114213-2b89a50ff1c0 h1:hJ+DZonWxH7KybGDIs66U64/HZyY3obuxqyO1LUiWEE= -github.com/unifi-poller/webserver v0.0.0-20200628114213-2b89a50ff1c0/go.mod h1:rlM8tRx7wCxqj4+6ZkuFVt2voFoAlHhS/XTrHd7T57s= -github.com/unifi-poller/webserver v0.0.0-20200628115531-e071827d7598 h1:Nmo1arOOln7V7YhjcwrT2AEFN0dl43tl5NgoNF4SgiA= -github.com/unifi-poller/webserver v0.0.0-20200628115531-e071827d7598/go.mod h1:rlM8tRx7wCxqj4+6ZkuFVt2voFoAlHhS/XTrHd7T57s= -github.com/unifi-poller/webserver v0.0.0-20200628212441-340749c94743 h1:B0K4P+dCLW5qG8hRhdMlrNEU+Yy0kAm9C2lCUmfBhPI= -github.com/unifi-poller/webserver v0.0.0-20200628212441-340749c94743/go.mod h1:ekoFVYoCWwn2CjQVTC9PNF6OaXYzr7HSnfc1BDQxxjA= -github.com/unifi-poller/webserver v0.0.0-20200628214116-5bead091e113/go.mod h1:08IX30eb93+VbhiFqgMBXQD52+djPwivBcx5C8fH92M= -github.com/unifi-poller/webserver v0.0.0-20200628220857-bb444cf7da24 h1:1X1DPZdpjPamherE0mfcs+O+hl/M+stilDk5+88U9ak= -github.com/unifi-poller/webserver v0.0.0-20200628220857-bb444cf7da24/go.mod h1:08IX30eb93+VbhiFqgMBXQD52+djPwivBcx5C8fH92M= -github.com/unifi-poller/webserver v0.0.0-20200629073701-8b95a5ac3e49 h1:8qVHNZg2Cf1dchBVCc8omU1ty56JQIQ9ZsyPg08EIs8= -github.com/unifi-poller/webserver v0.0.0-20200629073701-8b95a5ac3e49/go.mod h1:08IX30eb93+VbhiFqgMBXQD52+djPwivBcx5C8fH92M= -github.com/unifi-poller/webserver v0.0.0-20200630053536-1a5a6430daf4 h1:0II3Z/THLBBx8TCEYQkSlwn1KFLbGVe/OS/uNENvaS4= -github.com/unifi-poller/webserver v0.0.0-20200630053536-1a5a6430daf4/go.mod h1:08IX30eb93+VbhiFqgMBXQD52+djPwivBcx5C8fH92M= -github.com/unifi-poller/webserver v0.0.0-20200630103554-031c750c37a3 h1:LCmfjv9C8vnq59rxxBxqdqSCYkwN2USfntprQQ9BABg= -github.com/unifi-poller/webserver v0.0.0-20200630103554-031c750c37a3/go.mod h1:08IX30eb93+VbhiFqgMBXQD52+djPwivBcx5C8fH92M= -github.com/unifi-poller/webserver v0.0.0-20200704065911-79e4fe954ce1 h1:xjUOu//OP3dOc1X0K9d86WCoG4ezlrMWoeJOTHxECk0= -github.com/unifi-poller/webserver v0.0.0-20200704065911-79e4fe954ce1/go.mod h1:08IX30eb93+VbhiFqgMBXQD52+djPwivBcx5C8fH92M= -github.com/unifi-poller/webserver v0.0.0-20200706074454-a16e32b70121 h1:eK1wHVCUHcH9I8YzeWaiuS8kYgCqn1wXnyMmNH0g27A= -github.com/unifi-poller/webserver v0.0.0-20200706074454-a16e32b70121/go.mod h1:08IX30eb93+VbhiFqgMBXQD52+djPwivBcx5C8fH92M= -github.com/unifi-poller/webserver v0.0.0-20200707093910-adce7be3b1df h1:Opjv4SYuP595d0kb7tKzrX2aHH2EFrFER3Uu9cS7Frk= -github.com/unifi-poller/webserver v0.0.0-20200707093910-adce7be3b1df/go.mod h1:08IX30eb93+VbhiFqgMBXQD52+djPwivBcx5C8fH92M= +github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/unifi-poller/influxunifi v0.0.0-20210322050609-e6104eba8e39 h1:PGzHec8s8fDBnVNROdNQ5uNcra1yD7oJbRPsE0pwfQ0= +github.com/unifi-poller/influxunifi v0.0.0-20210322050609-e6104eba8e39/go.mod h1:DlASrS7caI8gZvzJ/GFyLkEK4sVxOP9vt2Osd+rZFQ8= +github.com/unifi-poller/influxunifi v0.0.0-20210322065128-7bc73454c06e h1:fjBa0JxHgXFdcPemQNHODb1CB/p6uo2Txgdpkwpgxps= +github.com/unifi-poller/influxunifi v0.0.0-20210322065128-7bc73454c06e/go.mod h1:DlASrS7caI8gZvzJ/GFyLkEK4sVxOP9vt2Osd+rZFQ8= +github.com/unifi-poller/inputunifi v0.0.0-20210322032017-2bf529b57d4d h1:nN5a6UNer948VLgWN/ZeiuLTwW26dCfc6dyATwRuAbM= +github.com/unifi-poller/inputunifi v0.0.0-20210322032017-2bf529b57d4d/go.mod h1:hbqRvuLzCva6t5E2f0pAdk9aNvo8tp2OTAVDLfSvsC8= +github.com/unifi-poller/lokiunifi v0.0.0-20210315080246-0270b8174e62 h1:wNMBZQWx96BhYUsIThOhzXapV37NLXo29m+qYZ6tiP0= +github.com/unifi-poller/lokiunifi v0.0.0-20210315080246-0270b8174e62/go.mod h1:RRYw79FXiiP/YIuZBrh9T9bVSP9yfULRavWRV2mtFOc= +github.com/unifi-poller/poller v0.0.0-20210315011940-c43dc3c221b4/go.mod h1:fObadG7weiVnSpFu8pFpGfo2bYYFc7hUMe770FovSc8= +github.com/unifi-poller/poller v0.0.0-20210315075554-47d92433b172 h1:90zdY4RZ5ocdZuoYG4EceiMOvHP5Rfg1qmi/5LurEe8= +github.com/unifi-poller/poller v0.0.0-20210315075554-47d92433b172/go.mod h1:5DN7IF0zmDcN7LqyCMcFfn1dAWxPc1d0z5QDyWYOaqs= +github.com/unifi-poller/promunifi v0.0.0-20210322055855-07f7eb3765d6 h1:27dVBbNpEkBCO7ssNhHCJeLXm45Id1vKETEiVHu9etw= +github.com/unifi-poller/promunifi v0.0.0-20210322055855-07f7eb3765d6/go.mod h1:gga/6BhE8nyOFSGWxdX04oKfR6pDNkkeDDd+ol9W0C8= +github.com/unifi-poller/unifi v0.0.7-0.20210315051727-4c317f9a2b95 h1:aEgu1a1N4/6BN9mcAtDNrGwFcHqlpjY9qsG42V9t2i4= +github.com/unifi-poller/unifi v0.0.7-0.20210315051727-4c317f9a2b95/go.mod h1:t8xQeZGwqInlBkvC3IClOXL4TpqYF5eI++1D+dvjKeo= +github.com/unifi-poller/webserver v0.0.0-20210315055414-fa42b37295b7 h1:WU/FaFcNl+f/yZ8AXuqhUXFlxpS/8T8lI1WYRZelf7c= +github.com/unifi-poller/webserver v0.0.0-20210315055414-fa42b37295b7/go.mod h1:7iwUoYHCsJ93p2Qd7UGxLRuH+Ls5wbe3EVBUz+RyxUM= +github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= +github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= +go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= +go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= +go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= +go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.0.0-20210317152858-513c2a44f670 h1:gzMM0EjIYiRmJI3+jBdFuoynZlpxa2JQZsolKu09BXo= +golang.org/x/crypto v0.0.0-20210317152858-513c2a44f670/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200602114024-627f9648deb9 h1:pNX+40auqi2JqRfOP1akLGtYcn15TUbkhwuCO3foqqM= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344 h1:vGXIOMxbNfDTk/aXCmfdLgkrSV+Z2tcbze+pEc3v5W4= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4 h1:b0LrWgu8+q7z4J+0Y3Umo5q1dL7NXBkKBWkaVkAq17E= +golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200420163511-1957bb5e6d1f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200610111108-226ff32320da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200620081246-981b61492c35 h1:wb/9mP8eUAmHfkM8RmpeLq6nUA7c2i5+bQOtcDftjaE= -golang.org/x/sys v0.0.0-20200620081246-981b61492c35/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae h1:Ih9Yo4hSPImZOpfGuA4bR/ORKTAbhZo2AbWNRCnevdo= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201214210602-f9fddec55a1e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210309074719-68d13333faf2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4 h1:EZ2mChiOa8udjfp6rRmswTbtZN/QzUQp4ptM4rnjHvc= +golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210317153231-de623e64d2a6 h1:EC6+IGYTjPpRfv9a2b/6Puw0W+hLtAhkV1tPsXhutqs= +golang.org/x/term v0.0.0-20210317153231-de623e64d2a6/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golift.io/cnfg v0.0.5 h1:HnMU8Z9C/igKvir1dqaHx5BPuNGZrp99FCtdJyP2Z4I= golift.io/cnfg v0.0.5/go.mod h1:ScFDIJg/rJGHbRaed/i7g1lBhywEjB0JiP2uZr3xC3A= +golift.io/cnfg v0.0.7 h1:qkNpP5Bq+5Gtoc6HcI8kapMD5zFOVan6qguxqBQF3OY= +golift.io/cnfg v0.0.7/go.mod h1:AsB0DJe7nv0bizKaoy3e3MjjOF7upTpMOMvsfv4CNNk= +golift.io/version v0.0.2 h1:i0gXRuSDHKs4O0sVDUg4+vNIuOxYoXhaxspftu2FRTE= +golift.io/version v0.0.2/go.mod h1:76aHNz8/Pm7CbuxIsDi97jABL5Zui3f2uZxDm4vB6hU= +google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= @@ -306,19 +451,35 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= +gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.5 h1:ymVxjfMaHvXD8RqPRmzHHsB3VvucivSkIAvJFDI5O3c= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= +sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= diff --git a/init/bsd/freebsd.rc.d b/init/bsd/freebsd.rc.d index acfc6990..13eda4af 100755 --- a/init/bsd/freebsd.rc.d +++ b/init/bsd/freebsd.rc.d @@ -12,7 +12,7 @@ name="{{BINARYU}}" real_name="{{BINARY}}" rcvar="{{BINARYU}}_enable" {{BINARYU}}_command="/usr/local/bin/${real_name}" -{{BINARYU}}_user="nobody" +{{BINARYU}}_user="{{BINARY}}" {{BINARYU}}_config="/usr/local/etc/${real_name}/{{CONFIG_FILE}}" pidfile="/var/run/${real_name}/pid" diff --git a/init/buildinfo.sh b/init/buildinfo.sh new file mode 100644 index 00000000..465618ec --- /dev/null +++ b/init/buildinfo.sh @@ -0,0 +1,22 @@ +# This file is read in by settings.sh. +# These values are not generally user configurable and this file is overwritten on upgrades. +# Override values in here by setting them in settings.sh; do not change this file. +########## + +VENDOR="Go Lift " + +# Dynamic. Recommend not changing. +VVERSION=$(git describe --abbrev=0 --tags $(git rev-list --tags --max-count=1) 2>/dev/null) +VERSION="$(echo $VVERSION | tr -d v | grep -E '^\S+$' || echo development)" +# This produces a 0 in some envirnoments (like Homebrew), but it's only used for packages. +ITERATION=$(git rev-list --count --all || echo 0) +DATE="$(date -u +%Y-%m-%dT%H:%M:%SZ)" +COMMIT="$(git rev-parse --short HEAD || echo 0)" + +GIT_BRANCH="$(git rev-parse --abbrev-ref HEAD || echo unknown)" +BRANCH="${TRAVIS_BRANCH:-${GIT_BRANCH}}" + +# Defines docker manifest/build types. +BUILDS="linux:armhf:arm linux:arm64:arm64 linux:amd64:amd64 linux:i386:386" + +export VENDOR VVERSION VERSION ITERATION DATE BRANCH COMMIT BUILDS diff --git a/init/docker/Dockerfile b/init/docker/Dockerfile index 48bd8749..999ebf08 100644 --- a/init/docker/Dockerfile +++ b/init/docker/Dockerfile @@ -10,7 +10,7 @@ ARG COMMIT=0 ARG VERSION=unknown ARG BINARY=application-builder -FROM golang:stretch as builder +FROM golang:latest as builder ARG ARCH ARG OS ARG BINARY @@ -19,7 +19,9 @@ RUN mkdir -p $GOPATH/pkg/mod $GOPATH/bin $GOPATH/src /${BINARY} COPY . /${BINARY} WORKDIR /${BINARY} -RUN CGO_ENABLED=0 make ${BINARY}.${ARCH}.${OS} +RUN apt update && \ + apt install -y upx && \ + CGO_ENABLED=0 make ${BINARY}.${ARCH}.${OS} FROM scratch ARG ARCH @@ -30,7 +32,6 @@ ARG VERSION ARG LICENSE=MIT ARG BINARY ARG SOURCE_URL=http://github.com/golift/application-builder -ARG URL=http://github.com/golift/application-builder ARG DESC=application-builder ARG VENDOR=golift ARG AUTHOR=golift @@ -41,7 +42,7 @@ LABEL org.opencontainers.image.created="${BUILD_DATE}" \ org.opencontainers.image.title="${BINARY}" \ org.opencontainers.image.documentation="${SOURCE_URL}/wiki/Docker" \ org.opencontainers.image.description="${DESC}" \ - org.opencontainers.image.url="${URL}" \ + org.opencontainers.image.url="${SOURCE_URL}" \ org.opencontainers.image.revision="${COMMIT}" \ org.opencontainers.image.source="${SOURCE_URL}" \ org.opencontainers.image.vendor="${VENDOR}" \ diff --git a/init/docker/hooks/README.md b/init/docker/hooks/README.md deleted file mode 100644 index f01d91f7..00000000 --- a/init/docker/hooks/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# Application Builder - -[https://github.com/golift/application-builder](https://github.com/golift/application-builder) - -## Docker Build Hooks - -The files in this folder are used by Docker Cloud to automate image builds. -Do not edit these files. - -If you want to build, maintain and push multi-architecture Docker images, you may -follow the example provided here. All of the hooks are generic, and will work with -any build. Two environment variables must be passed in from Docker Cloud config. - -1. `BUILDS` must be set to the builds you're trying to perform. This repo is currently set to: - - `linux:armhf:arm linux:arm64:arm64 linux:amd64:amd64 linux:i386:386` - - The format is `os:name:arch`. - - `os` and `name` are passed into the Dockerfile. - - `os`, `arch` are passed into `docker manifest annotate`. - - This does not yet work with an OS other than `linux`. -1. Set `DOCKER_CLI_EXPERIMENTAL` to `enabled`. Not optional. - -Keep the build simple; see screenshot. This only supports one build tag, but it creates many more. - -![UniFi Poller Docker Cloud Build Rules](https://raw.githubusercontent.com/wiki/unifi-poller/unifi-poller/images/unifi-poller-build-rules.png "UniFi Poller Docker Cloud Build Rules") - -The fancy source tag is `/^v((\d+\.\d+)(?:\.\d+)?)$/` and it allows you to capture -the minor version without patch-level in `{\2}`. I no longer use `{\2}` in my build. -[See how it works here](https://regex101.com/r/fzt6ki/1). diff --git a/init/docker/hooks/build b/init/docker/hooks/build index 2fcdfc4d..85bc7125 100755 --- a/init/docker/hooks/build +++ b/init/docker/hooks/build @@ -9,7 +9,7 @@ set -e -o pipefail # This always run local to the Dockerfile folder, so the path is ../.. pushd ../.. -source .metadata.sh +source settings.sh # Build each configured image from Docker Cloud. for build in $BUILDS; do @@ -24,7 +24,6 @@ for build in $BUILDS; do --build-arg "VERSION=${VERSION}-${ITERATION}" \ --build-arg "LICENSE=${LICENSE}" \ --build-arg "DESC=${DESC}" \ - --build-arg "URL=${URL}" \ --build-arg "VENDOR=${VENDOR}" \ --build-arg "AUTHOR=${MAINT}" \ --build-arg "BINARY=${BINARY}" \ diff --git a/init/docker/hooks/push b/init/docker/hooks/push index f3f695da..26f7c907 100755 --- a/init/docker/hooks/push +++ b/init/docker/hooks/push @@ -4,13 +4,11 @@ # This is part of Application Builder. # https://github.com/golift/application-builder -#set -e -o pipefail - pushd ../.. -source .metadata.sh +source settings.sh popd -if [ "$TAGS" == "" ]; then +if [ "$BUILDS" != "" ]; then TAGS=$DOCKER_TAG fi @@ -26,14 +24,14 @@ for build in $BUILDS; do done echo "Annotating Images: ${IMAGES}" -# Build all the Docker tags if the source branch is a release and not a branch. +# Build all the Docker tags if the source branch is a release and not a branch or pre-release. if [ "v$VERSION" = "$SOURCE_BRANCH" ]; then - TAGS="$VERSION $(echo $VERSION | cut -d. -f1,2) $(echo $VERSION | cut -d. -f1)" + TAGS="$VERSION" echo $SOURCE_BRANCH | grep -q -- - if [ "$?" = "1" ]; then # tag does not contain a dash, so assume it's a prod tag. - TAGS="$TAGS latest stable" + TAGS="$TAGS latest stable $(echo $VERSION | cut -d. -f1,2) $(echo $VERSION | cut -d. -f1)" fi fi @@ -43,7 +41,7 @@ echo "Version: $VERSION, Source: $SOURCE_BRANCH, Building tags: ${TAGS}" for tag in $TAGS; do docker manifest create --amend ${DOCKER_REPO}:${tag} $IMAGES for build in $BUILDS; do - # os:name:arch:variant, ie linux:amd64:amd64: (no variant is ok) + # os:name:arch, ie linux:amd64:amd64 os=$(echo $build | cut -d: -f1) name=$(echo $build | cut -d: -f2) arch=$(echo $build | cut -d: -f3) diff --git a/init/homebrew/service.rb.tmpl b/init/homebrew/service.rb.tmpl index 00921281..3e4c588e 100644 --- a/init/homebrew/service.rb.tmpl +++ b/init/homebrew/service.rb.tmpl @@ -1,6 +1,7 @@ -# macOS Homebrew Formula Template. Built by Makefile: `make fomula` +# Homebrew Formula Template. Built by Makefile: `make fomula` # This is part of Application Builder. # https://github.com/golift/application-builder +# This file is used when FORMULA is set to 'service'. class {{Class}} < Formula desc "{{Desc}}" homepage "{{URL}}" @@ -9,6 +10,7 @@ class {{Class}} < Formula head "{{SOURCE_URL}}" depends_on "go" => :build + depends_on "upx" => :build def install bin_path = buildpath/"#{name}" diff --git a/init/launchd/README.md b/init/launchd/README.md deleted file mode 100644 index d5a6e8ae..00000000 --- a/init/launchd/README.md +++ /dev/null @@ -1,2 +0,0 @@ -This file isn't used by the build or for any packages. The homebrew launchd is -in the [homebrew](../homebrew) folder. This macOS launchd file is for reference only. diff --git a/init/launchd/com.github.davidnewhall.unifi-poller.plist b/init/launchd/com.github.davidnewhall.unifi-poller.plist deleted file mode 100644 index c5370da0..00000000 --- a/init/launchd/com.github.davidnewhall.unifi-poller.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - Label - com.github.unifi-poller.unifi-poller - ProgramArguments - - /usr/local/bin/unifi-poller - -c - /usr/local/etc/unifi-poller/up.conf - - RunAtLoad - - KeepAlive - - StandardErrorPath - /usr/local/var/log/unifi-poller.log - StandardOutPath - /usr/local/var/log/unifi-poller.log - - diff --git a/init/systemd/template.unit.service b/init/systemd/template.unit.service index 15ae80c8..0612b55f 100644 --- a/init/systemd/template.unit.service +++ b/init/systemd/template.unit.service @@ -1,6 +1,7 @@ -# Linux Systemd service unit for {{BINARY}}. +# Systemd service unit for {{BINARY}}. # This is part of Application Builder. # https://github.com/golift/application-builder +# This file is installed when FORMULA is set to 'service'. [Unit] Description={{BINARY}} - {{DESC}} @@ -17,7 +18,12 @@ StandardOutput=syslog StandardError=syslog SyslogIdentifier={{BINARY}} Type=simple -User=nobody +WorkingDirectory=/tmp + +# These should be set correctly for your environment. +UMask=0002 +User={{BINARY}} +Group={{BINARY}} [Install] WantedBy=multi-user.target diff --git a/init/windows/application.ico b/init/windows/application.ico new file mode 100644 index 00000000..a3e38bae Binary files /dev/null and b/init/windows/application.ico differ diff --git a/init/windows/manifest.xml b/init/windows/manifest.xml new file mode 100644 index 00000000..9a97fd5f --- /dev/null +++ b/init/windows/manifest.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + PerMonitorV2, PerMonitor + True + + + + + + + + + + + + + + + + + diff --git a/main.go b/main.go index 7e34f9e0..fbe80c7a 100644 --- a/main.go +++ b/main.go @@ -1,15 +1,14 @@ package main +//nolint:gci import ( "log" "os" "time" - "github.com/unifi-poller/poller/pkg/poller" - + "github.com/unifi-poller/poller" // Load input plugins! _ "github.com/unifi-poller/inputunifi" - // Load output plugins! _ "github.com/unifi-poller/influxunifi" _ "github.com/unifi-poller/lokiunifi" diff --git a/scripts/after-install.sh b/scripts/after-install.sh index a465fdf4..d06888c9 100755 --- a/scripts/after-install.sh +++ b/scripts/after-install.sh @@ -1,14 +1,29 @@ #!/bin/sh -# This file is used by txz, deb and rpm packages. -# FPM adds this as the after-install script to all packages. +# This file is used by deb, rpm and BSD packages. +# FPM adds this as the after-install script. +# Edit this file as needed for your application. +# This file is only installed if FORMULA is set to service. + +OS="$(uname -s)" + +if [ "${OS}" = "Linux" ]; then + # Make a user and group for this app, but only if it does not already exist. + id {{BINARY}} >/dev/null 2>&1 || \ + useradd --system --user-group --no-create-home --home-dir /tmp --shell /bin/false {{BINARY}} +elif [ "${OS}" = "OpenBSD" ]; then + id {{BINARY}} >/dev/null 2>&1 || \ + useradd -g =uid -d /tmp -s /bin/false {{BINARY}} +elif [ "${OS}" = "FreeBSD" ]; then + id {{BINARY}} >/dev/null 2>&1 || \ + pw useradd {{BINARY}} -d /tmp -w no -s /bin/false +else + echo "Unknown OS: ${OS}, please add system user {{BINARY}} manually." +fi if [ -x "/bin/systemctl" ]; then # Reload and restart - this starts the application as user nobody. /bin/systemctl daemon-reload - /bin/systemctl enable unifi-poller - /bin/systemctl restart unifi-poller -elif [ -x /usr/sbin/service ]; then - # Do not start or restart on freebsd. That's "bad practice." - /usr/sbin/service unifi-poller enabled || /usr/sbin/service unifi-poller enable + /bin/systemctl enable {{BINARY}} + /bin/systemctl restart {{BINARY}} fi diff --git a/scripts/before-remove.sh b/scripts/before-remove.sh index a6f2fce3..209f70c7 100755 --- a/scripts/before-remove.sh +++ b/scripts/before-remove.sh @@ -1,15 +1,17 @@ -#!/bin/sh +#!/bin/bash -# This file is used by txz, rpm and deb packages. FPM use. +# This file is used by rpm and deb packages. FPM use. +# Edit this file as needed for your application. +# This file is only installed if FORMULA is set to service. if [ "$1" = "upgrade" ] || [ "$1" = "1" ] ; then exit 0 fi if [ -x "/bin/systemctl" ]; then - /bin/systemctl stop unifi-poller - /bin/systemctl disable unifi-poller + /bin/systemctl stop {{BINARY}} + /bin/systemctl disable {{BINARY}} elif [ -x /usr/sbin/service ]; then - /usr/sbin/service unifi-poller stop - /usr/sbin/service unifi-poller disable + /usr/sbin/service {{BINARY}} stop + /usr/sbin/service {{BINARY}} disable fi diff --git a/scripts/formula-deploy.sh b/scripts/formula-deploy.sh index b93d92e5..22b6f579 100755 --- a/scripts/formula-deploy.sh +++ b/scripts/formula-deploy.sh @@ -3,10 +3,9 @@ # Deploys a new homebrew formula file to a github homebrew formula repo: $HBREPO # Requires SSH credentials in ssh-agent to work. # Run by Travis-CI when a new release is created on GitHub. -# Do not edit this file. It's part of application-builder. -# https://github.com/golift/application-builder +# Do not edit this file. -source .metadata.sh +source settings.sh make ${BINARY}.rb @@ -16,6 +15,23 @@ git config --global user.name "${BINARY}-auto-releaser" rm -rf homebrew_release_repo git clone git@github.com:${HBREPO}.git homebrew_release_repo +# If a bitly token file exists, we'll use that to shorten the link (and allow download counting). +if [ -f "bitly_token" ]; then + API=https://api-ssl.bitly.com/v4/bitlinks + # Request payload. In single quotes with double quotes escaped. :see_no_evil: + JSON='{\"domain\": \"bit.ly\",\"title\": \"${BINARY}.v${VERSION}-${ITERATION}.tgz\", \ + \"tags\": [\"${BINARY}\"], \"long_url\": \"${SOURCE_PATH}\"}' + # Request with headers and data. Using bash -c to hide token from bash -x in travis logs. + OUT=$(bash -c "curl -s -X POST -H 'Content-type: application/json' ${API} -H \"\$( ${BINARY}.rb.new + if [ "$?" = "0" ] && [ "$LINK" != "null?v=v${VERSION}" ] && [ "$LINK" != "?v=v${VERSION}" ]; then + mv ${BINARY}.rb.new ${BINARY}.rb + fi +fi + cp ${BINARY}.rb homebrew_release_repo/Formula pushd homebrew_release_repo git add Formula/${BINARY}.rb diff --git a/scripts/install.sh b/scripts/install.sh index 03a65226..e0cf0851 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -1,11 +1,11 @@ -#!/bin/sh - -# This is a quick and dirty script to install the latest Linux package. +#!/bin/bash +# +# This is a quick and dirty script to install the latest package. # # Use it like this, pick curl or wget: (sudo is optional) # ---- -# curl -s https://raw.githubusercontent.com/unifi-poller/unifi-poller/master/scripts/install.sh | sudo sh -# wget -qO- https://raw.githubusercontent.com/unifi-poller/unifi-poller/master/scripts/install.sh | sudo sh +# curl -sL https://raw.githubusercontent.com/unifi-poller/unifi-poller/master/scripts/install.sh | sudo bash +# wget -qO- https://raw.githubusercontent.com/unifi-poller/unifi-poller/master/scripts/install.sh | sudo bash # ---- # # - If you're on RedHat/CentOS/Fedora, installs the latest rpm package. @@ -15,15 +15,18 @@ # This is part of application-builder. # https://github.com/golift/application-builder +# Set the repo name correctly. REPO=unifi-poller/unifi-poller BREW=golift/mugs/unifi-poller + +# Nothing else needs to be changed. Unless you're fixing things! + LATEST=https://api.github.com/repos/${REPO}/releases/latest ISSUES=https://github.com/${REPO}/issues/new ARCH=$(uname -m) OS=$(uname -s) P=" ==>" -# Nothing else needs to be changed. Unless you're fixing things! echo "<-------------------------------------------------->" if [ "$OS" = "Darwin" ]; then @@ -108,7 +111,7 @@ INSTALLER="rpm -Uvh" if [ "$FILE" = "deb" ]; then INSTALLER="dpkg --force-confdef --force-confold --install" elif [ "$FILE" = "txz" ]; then - INSTALLER="pkg install" + INSTALLER="pkg install --yes" fi FILE=$(basename ${URL}) diff --git a/.metadata.sh b/settings.sh similarity index 53% rename from .metadata.sh rename to settings.sh index de3e34bc..1e8f264f 100755 --- a/.metadata.sh +++ b/settings.sh @@ -2,6 +2,9 @@ # This file is parsed and sourced by the Makefile, Docker and Homebrew builds. # Powered by Application Builder: https://github.com/golift/application-builder +# Bring in dynamic repo/pull/source info. +source $(dirname "${BASH_SOURCE[0]}")/init/buildinfo.sh + # Must match the repo name. BINARY="unifi-poller" # Github repo containing homebrew formula repo. @@ -17,32 +20,13 @@ LICENSE="MIT" # This affects the homebrew formula (launchd) and linux packages (systemd). FORMULA="service" -# Defines docker manifest/build types. -BUILDS="linux:armhf:arm linux:arm64:arm64 linux:amd64:amd64 linux:i386:386" - -export BINARY HBREPO MAINT VENDOR DESC GOLANGCI_LINT_ARGS CONFIG_FILE LICENSE FORMULA BUILDS - -# The rest is mostly automatic. -# Fix the repo if it doesn't match the binary name. -# Provide a better URL if one exists. - # Used for source links and wiki links. SOURCE_URL="https://github.com/${BINARY}/${BINARY}" -# Used for documentation links. -URL="${SOURCE_URL}" -# Dynamic. Recommend not changing. -VVERSION=$(git describe --abbrev=0 --tags $(git rev-list --tags --max-count=1)) -VERSION="$(echo $VVERSION | tr -d v | grep -E '^\S+$' || echo development)" -# This produces a 0 in some envirnoments (like Homebrew), but it's only used for packages. -ITERATION=$(git rev-list --count --all || echo 0) -DATE="$(date -u +%Y-%m-%dT%H:%M:%SZ)" -COMMIT="$(git rev-parse --short HEAD || echo 0)" - -GIT_BRANCH="$(git rev-parse --abbrev-ref HEAD || echo unknown)" -BRANCH="${TRAVIS_BRANCH:-${GIT_BRANCH}}" +VERSION_PATH="golift.io/version" # This is a custom download path for homebrew formula. SOURCE_PATH=https://golift.io/${BINARY}/archive/v${VERSION}.tar.gz -export SOURCE_URL URL VVERSION VERSION ITERATION DATE BRANCH COMMIT SOURCE_PATH +export BINARY HBREPO MAINT VENDOR DESC GOLANGCI_LINT_ARGS CONFIG_FILE +export LICENSE FORMULA SOURCE_URL VERSION_PATH SOURCE_PATH