WIP: Start preparing release v3.0.7 (#147)
* Use ooni/probe-engine 0.16.0 * Update all the other dependencies * Use GitHub Actions rather than Travis CI * Automatically build and test binaries on the target OS (for Windows, macOS, Linux on amd64) * Make sure we correctly measure coverage * Make sure we use `-race` when running tests * Remove unnecessary scripts * Make sure the README is up-to-date * Write small script to update binary data and add GitHub Actions checks for it * Notice that we needed to run ./updatebindata.sh and run it * Self documenting instructions regarding cross compiling * Set version number to v3.0.7-beta Part of https://github.com/ooni/probe-engine/issues/748
This commit is contained in:
parent
1983672e3c
commit
4c65147009
|
@ -1,4 +0,0 @@
|
|||
/dist
|
||||
/ooniprobe
|
||||
/ooniprobe.exe
|
||||
/testdata/gotmp
|
22
.github/workflows/bindata.yml
vendored
Normal file
22
.github/workflows/bindata.yml
vendored
Normal file
|
@ -0,0 +1,22 @@
|
|||
# Make sure we can embed bindata
|
||||
name: bindata
|
||||
on:
|
||||
push:
|
||||
schedule:
|
||||
- cron: "14 17 * * 3"
|
||||
jobs:
|
||||
test:
|
||||
runs-on: "${{ matrix.os }}"
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: ["ubuntu-latest"]
|
||||
go: ["1.14"]
|
||||
steps:
|
||||
- uses: actions/setup-go@v1
|
||||
with:
|
||||
go-version: ${{ matrix.go }}
|
||||
- uses: actions/checkout@v2
|
||||
- run: ./updatebindata.sh
|
||||
- run: go mod tidy # revert changes caused by installing bindata
|
||||
- run: git diff --exit-code # if this fails, run ./updatebindata.sh locally and push
|
57
.github/workflows/cross.yml
vendored
Normal file
57
.github/workflows/cross.yml
vendored
Normal file
|
@ -0,0 +1,57 @@
|
|||
# Shows how to cross compile ooniprobe
|
||||
name: cross
|
||||
on:
|
||||
push:
|
||||
schedule:
|
||||
- cron: "14 17 * * 3"
|
||||
jobs:
|
||||
|
||||
windows_from_linux_build:
|
||||
runs-on: "ubuntu-latest"
|
||||
steps:
|
||||
- uses: actions/setup-go@v1
|
||||
with:
|
||||
go-version: "1.14"
|
||||
- uses: actions/checkout@v2
|
||||
- run: sudo apt update
|
||||
- run: sudo apt install --yes mingw-w64
|
||||
- run: ./build.sh windows
|
||||
- uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: ooniprobe-windows-amd64-compiled-from-linux
|
||||
path: ./CLI/windows/amd64/ooniprobe.exe
|
||||
|
||||
test_build_from_linux:
|
||||
needs: windows_from_linux_build
|
||||
runs-on: "windows-latest"
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: ooniprobe-windows-amd64-compiled-from-linux
|
||||
- run: bash.exe ./smoketest.sh ./ooniprobe.exe
|
||||
|
||||
windows_from_macos_build:
|
||||
runs-on: "macos-latest"
|
||||
steps:
|
||||
- uses: actions/setup-go@v1
|
||||
with:
|
||||
go-version: "1.14"
|
||||
- uses: actions/checkout@v2
|
||||
- run: brew update
|
||||
- run: brew install mingw-w64
|
||||
- run: ./build.sh windows
|
||||
- uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: ooniprobe-windows-amd64-compiled-from-macos
|
||||
path: ./CLI/windows/amd64/ooniprobe.exe
|
||||
|
||||
test_build_from_macos:
|
||||
needs: windows_from_macos_build
|
||||
runs-on: "windows-latest"
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: ooniprobe-windows-amd64-compiled-from-macos
|
||||
- run: bash.exe ./smoketest.sh ./ooniprobe.exe
|
32
.github/workflows/golang.yml
vendored
Normal file
32
.github/workflows/golang.yml
vendored
Normal file
|
@ -0,0 +1,32 @@
|
|||
# Run tests and measure coverage
|
||||
name: golang
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
schedule:
|
||||
- cron: "14 17 * * 3"
|
||||
jobs:
|
||||
test:
|
||||
runs-on: "${{ matrix.os }}"
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: ["ubuntu-latest"]
|
||||
go: ["1.14"]
|
||||
steps:
|
||||
- uses: actions/setup-go@v1
|
||||
with:
|
||||
go-version: ${{ matrix.go }}
|
||||
- uses: actions/checkout@v2
|
||||
- run: go test -race -tags shaping -v -coverprofile=probe-cli.cov -coverpkg=./... ./...
|
||||
- uses: shogo82148/actions-goveralls@v1
|
||||
with:
|
||||
path-to-profile: probe-cli.cov
|
||||
parallel: true
|
||||
finish:
|
||||
needs: test
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: shogo82148/actions-goveralls@v1
|
||||
with:
|
||||
parallel-finished: true
|
20
.github/workflows/linux.yml
vendored
Normal file
20
.github/workflows/linux.yml
vendored
Normal file
|
@ -0,0 +1,20 @@
|
|||
# Build and test Linux binary
|
||||
name: linux
|
||||
on:
|
||||
push:
|
||||
schedule:
|
||||
- cron: "14 17 * * 3"
|
||||
jobs:
|
||||
build:
|
||||
runs-on: "ubuntu-latest"
|
||||
steps:
|
||||
- uses: actions/setup-go@v1
|
||||
with:
|
||||
go-version: "1.14"
|
||||
- uses: actions/checkout@v2
|
||||
- run: ./build.sh linux
|
||||
- run: ./smoketest.sh ./CLI/linux/amd64/ooniprobe
|
||||
- uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: ooniprobe-linux-amd64
|
||||
path: ./CLI/linux/amd64/ooniprobe
|
20
.github/workflows/macos.yml
vendored
Normal file
20
.github/workflows/macos.yml
vendored
Normal file
|
@ -0,0 +1,20 @@
|
|||
# Build and test macOS binary
|
||||
name: macos
|
||||
on:
|
||||
push:
|
||||
schedule:
|
||||
- cron: "14 17 * * 3"
|
||||
jobs:
|
||||
build:
|
||||
runs-on: "macos-latest"
|
||||
steps:
|
||||
- uses: actions/setup-go@v1
|
||||
with:
|
||||
go-version: "1.14"
|
||||
- uses: actions/checkout@v2
|
||||
- run: ./build.sh macos
|
||||
- run: ./smoketest.sh ./CLI/macos/amd64/ooniprobe
|
||||
- uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: ooniprobe-macos-amd64
|
||||
path: ./CLI/macos/amd64/ooniprobe
|
20
.github/workflows/windows.yml
vendored
Normal file
20
.github/workflows/windows.yml
vendored
Normal file
|
@ -0,0 +1,20 @@
|
|||
# Build and test Windows binary
|
||||
name: windows
|
||||
on:
|
||||
push:
|
||||
schedule:
|
||||
- cron: "14 17 * * 3"
|
||||
jobs:
|
||||
build:
|
||||
runs-on: "windows-latest"
|
||||
steps:
|
||||
- uses: actions/setup-go@v1
|
||||
with:
|
||||
go-version: "1.14"
|
||||
- uses: actions/checkout@v2
|
||||
- run: bash.exe ./build.sh windows
|
||||
- run: bash.exe ./smoketest.sh ./CLI/windows/amd64/ooniprobe.exe
|
||||
- uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: ooniprobe-windows-amd64
|
||||
path: ./CLI/windows/amd64/ooniprobe.exe
|
6
.gitignore
vendored
6
.gitignore
vendored
|
@ -1,11 +1,9 @@
|
|||
/dist
|
||||
/ooniprobe
|
||||
/coverage.cov
|
||||
/testdata/gotmp
|
||||
*.njson
|
||||
*.jsonl
|
||||
.DS_Store
|
||||
|
||||
# Build artifacts
|
||||
*.tar.gz
|
||||
*.zip
|
||||
ooniprobe_checksums.txt
|
||||
ooniprobe_checksums.txt.asc
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
os: linux
|
||||
dist: xenial
|
||||
language: minimal
|
||||
services:
|
||||
- docker
|
||||
script:
|
||||
- ./build.sh _travis-${TRAVIS_OS_NAME}
|
||||
- ./scripts/travis_test.sh
|
1
CLI/linux/amd64/.gitignore
vendored
Normal file
1
CLI/linux/amd64/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
*
|
1
CLI/macos/amd64/.gitignore
vendored
Normal file
1
CLI/macos/amd64/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
*
|
1
CLI/windows/amd64/.gitignore
vendored
Normal file
1
CLI/windows/amd64/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
*
|
|
@ -1,2 +0,0 @@
|
|||
FROM openobservatory/mk-alpine:20200721
|
||||
RUN apk add --no-progress git go
|
47
Readme.md
47
Readme.md
|
@ -4,11 +4,13 @@ The next generation OONI Probe Command Line Interface.
|
|||
|
||||
## User setup
|
||||
|
||||
1. Go [into the releases](https://github.com/ooni/probe-cli/releases) and download the release for your architecture and platform
|
||||
1. Go [into the releases](https://github.com/ooni/probe-cli/releases) and download the
|
||||
release for your architecture and platform
|
||||
|
||||
2. Extract the tarball with `tar xvzf ooniprobe_*.tar.gz`
|
||||
|
||||
3. Copy the `ooniprobe` binary into a location in your `$PATH`, for example `/usr/local/bin/ooniprobe`
|
||||
3. Copy the `ooniprobe` binary into a location in your `$PATH`, for example
|
||||
`/usr/local/bin/ooniprobe`
|
||||
|
||||
4. Run `ooniprobe run` to perform all the tests
|
||||
|
||||
|
@ -16,19 +18,22 @@ Optional:
|
|||
|
||||
Add a crontab entry (on linux) to run `ooniprobe` daily at a random time:
|
||||
|
||||
```
|
||||
```bash
|
||||
(crontab -l 2>/dev/null; echo "$(( ( RANDOM % 60 ) + 1 )) $(( ( RANDOM % 24 ) + 1 )) * * * ooniprobe run") | crontab -
|
||||
```
|
||||
|
||||
On macOS you can configure OONI Probe to run automatically using launchd.
|
||||
|
||||
Below is a sample launchd script, that should be placed inside of `~/Library/LaunchAgents/org.ooni.probe.cli.plist`.
|
||||
Below is a sample launchd script, that should be placed inside of
|
||||
`~/Library/LaunchAgents/org.ooni.probe.cli.plist`.
|
||||
|
||||
Be sure to replace `/PATH/TO/BINARY/ooniprobe` with the actual install location of the `ooniprobe` binary and `/PATH/TO/CONFIG/config-100sites.json` with the location of a file which limits the testing to 100 URLs.
|
||||
Be sure to replace `/PATH/TO/BINARY/ooniprobe` with the actual install location of the
|
||||
`ooniprobe` binary and `/PATH/TO/CONFIG/config-100sites.json` with the location of a file
|
||||
which limits the testing to 100 URLs.
|
||||
|
||||
You may also want to adjust the locations of the logs.
|
||||
|
||||
```
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
|
@ -62,25 +67,40 @@ You may also want to adjust the locations of the logs.
|
|||
</plist>
|
||||
```
|
||||
|
||||
Once you have written the file, you can enable to run automatically by doing: `launchctl load org.ooni.probe.cli.plist`.
|
||||
Once you have written the file, you can enable `ooniprobe` to run automatically by
|
||||
doing: `launchctl load org.ooni.probe.cli.plist`.
|
||||
|
||||
## Development setup
|
||||
|
||||
Be sure you have golang >= 1.14. We use golang modules. Run
|
||||
Be sure you have golang >= 1.14 and a C compiler (when developing for Windows, you
|
||||
need Mingw-w64 installed). The most basic build command is:
|
||||
|
||||
```bash
|
||||
go build -v ./cmd/ooniprobe
|
||||
```
|
||||
|
||||
To compile a release used the `build.sh` script. For more information
|
||||
|
||||
```bash
|
||||
./build.sh help
|
||||
```
|
||||
|
||||
to get information on the supported systems as well as to get
|
||||
instructions on how to install dependencies.
|
||||
The output generated by this command should provide you with updated information
|
||||
regarding the pre-requisites for building (and cross-building) `ooniprobe` as well
|
||||
as useful information regarding cross compiling.
|
||||
|
||||
To update bundled binary data use:
|
||||
|
||||
```bash
|
||||
./updatebindata.sh
|
||||
```
|
||||
|
||||
## Updating dependencies
|
||||
|
||||
1. update every direct dependency in `go.mod` except `probe-engine`
|
||||
using `go get -u -v $dependency`:
|
||||
|
||||
```
|
||||
```bash
|
||||
for name in `grep -v indirect go.mod | grep -v probe-engine | awk '/^\t/{print $1}'`; do \
|
||||
go get -u -v $name; \
|
||||
done
|
||||
|
@ -99,10 +119,9 @@ a specific version of psiphon and of its dependencies.
|
|||
|
||||
## Releasing
|
||||
|
||||
Make sure you have updated dependencies. Specifically, make sure
|
||||
you update homebrew to get the latest Measurement Kit. Then:
|
||||
Make sure you have updated dependencies. Then run
|
||||
|
||||
```
|
||||
```bash
|
||||
./build.sh release
|
||||
```
|
||||
|
||||
|
|
160
build.sh
160
build.sh
|
@ -1,133 +1,57 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
set -ex
|
||||
|
||||
buildtags="-tags ooni"
|
||||
ldflags="-s -w"
|
||||
# We don't have a git repository when running in github actions
|
||||
v=`git describe --tags || echo $GITHUB_SHA`
|
||||
|
||||
if [ "$1" = "bindata" ]; then
|
||||
GO_BINDATA_V=$(go-bindata -version | grep go-bin | cut -d ' ' -f2)
|
||||
if [ "$GO_BINDATA_V" = "3.2.0" ]; then
|
||||
echo "Updating bindata"
|
||||
go-bindata -nometadata -o internal/bindata/bindata.go -pkg bindata data/...
|
||||
echo "DONE"
|
||||
exit 0
|
||||
else
|
||||
echo "Wrong go-bindata-version"
|
||||
echo "Please install go-bindata with:"
|
||||
echo " go get -u github.com/shuLhan/go-bindata/..."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
case $1 in
|
||||
windows)
|
||||
# Note! This assumes we've installed the mingw-w64 compiler.
|
||||
GOOS=windows GOARCH=amd64 CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc \
|
||||
go build -ldflags='-s -w' ./cmd/ooniprobe
|
||||
tar -cvzf ooniprobe_${v}_windows_amd64.tar.gz LICENSE.md Readme.md ooniprobe.exe
|
||||
# We don't have zip inside the github actions runner
|
||||
zip ooniprobe_${v}_windows_amd64.zip LICENSE.md Readme.md ooniprobe.exe || true
|
||||
mv ooniprobe.exe ./CLI/windows/amd64/
|
||||
;;
|
||||
|
||||
if [ "$1" = "windows" ]; then
|
||||
set -x
|
||||
CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ \
|
||||
CGO_LDFLAGS_ALLOW='-fstack-.*' CGO_ENABLED=1 GOOS=windows GOARCH=amd64 \
|
||||
go build $buildtags -ldflags="$ldflags" \
|
||||
-o dist/windows/amd64/ooniprobe.exe -v ./cmd/ooniprobe
|
||||
linux)
|
||||
docker run -v`pwd`:/ooni -w/ooni golang:1.14-alpine ./build.sh _alpine
|
||||
tar -cvzf ooniprobe_${v}_linux_amd64.tar.gz LICENSE.md Readme.md ooniprobe
|
||||
mv ooniprobe ./CLI/linux/amd64/
|
||||
;;
|
||||
|
||||
elif [ "$1" = "linux" ]; then
|
||||
set -x
|
||||
$0 __docker go build $buildtags -ldflags="$ldflags" \
|
||||
-o dist/linux/amd64/ooniprobe -v ./cmd/ooniprobe
|
||||
_alpine)
|
||||
apk add --no-progress gcc git linux-headers musl-dev
|
||||
go build -tags netgo -ldflags='-s -w -extldflags "-static"' ./cmd/ooniprobe
|
||||
;;
|
||||
|
||||
elif [ "$1" = "macos" ]; then
|
||||
set -x
|
||||
go build $buildtags -ldflags="$ldflags" \
|
||||
-o dist/macos/amd64/ooniprobe -v ./cmd/ooniprobe
|
||||
macos)
|
||||
# Note! The following line _assumes_ you have a working C compiler. If you
|
||||
# have Xcode command line tools installed, you are fine.
|
||||
go build -ldflags='-s -w' ./cmd/ooniprobe
|
||||
tar -cvzf ooniprobe_${v}_macos_amd64.tar.gz LICENSE.md Readme.md ooniprobe
|
||||
mv ooniprobe ./CLI/macos/amd64/
|
||||
;;
|
||||
|
||||
elif [ "$1" = "release" ]; then
|
||||
set -x
|
||||
v=`git describe --tags`
|
||||
release)
|
||||
$0 linux
|
||||
tar -czf ooniprobe_${v}_linux_amd64.tar.gz LICENSE.md Readme.md \
|
||||
-C ./dist/linux/amd64 ooniprobe
|
||||
shasum -a 256 ooniprobe_${v}_linux_amd64.tar.gz > ooniprobe_checksums.txt
|
||||
$0 macos
|
||||
tar -czf ooniprobe_${v}_darwin_amd64.tar.gz LICENSE.md Readme.md \
|
||||
-C ./dist/macos/amd64 ooniprobe
|
||||
shasum -a 256 ooniprobe_${v}_darwin_amd64.tar.gz >> ooniprobe_checksums.txt
|
||||
$0 windows
|
||||
tar -czf ooniprobe_${v}_windows_amd64.tar.gz LICENSE.md Readme.md \
|
||||
-C dist/windows/amd64 ooniprobe.exe
|
||||
shasum -a 256 ooniprobe_${v}_windows_amd64.tar.gz >> ooniprobe_checksums.txt
|
||||
echo ""
|
||||
echo "Now sign ooniprobe_checksums.txt and upload it along with tarballs to GitHub"
|
||||
|
||||
elif [ "$1" = "__docker" ]; then
|
||||
set -x
|
||||
shift
|
||||
docker build -t oonibuild .
|
||||
docker run -v `pwd`:/oonibuild \
|
||||
-w /oonibuild \
|
||||
-t \
|
||||
--cap-drop=all \
|
||||
--user `id -u`:`id -g` \
|
||||
-e 'GOCACHE=/oonibuild/testdata/gotmp/cache' \
|
||||
-e 'GOPATH=/oonibuild/testdata/gotmp/path' \
|
||||
-e "TRAVIS_JOB_ID=$TRAVIS_JOB_ID" \
|
||||
-e "TRAVIS_PULL_REQUEST=$TRAVIS_PULL_REQUEST" \
|
||||
oonibuild "$@"
|
||||
|
||||
elif [ "$1" = "_travis-linux" ]; then
|
||||
set -x
|
||||
$0 linux
|
||||
# TODO -race does not work on alpine.
|
||||
# See: https://travis-ci.org/ooni/probe-cli/builds/619631256#L962
|
||||
$0 __docker go get -v golang.org/x/tools/cmd/cover
|
||||
$0 __docker go get -v github.com/mattn/goveralls
|
||||
$0 __docker go test $buildtags -v -coverprofile=coverage.cov -coverpkg=./... ./...
|
||||
$0 __docker /oonibuild/testdata/gotmp/path/bin/goveralls \
|
||||
-coverprofile=coverage.cov -service=travis-ci
|
||||
|
||||
elif [ "$1" = "_travis-osx" ]; then
|
||||
set -x
|
||||
brew tap measurement-kit/measurement-kit
|
||||
brew update
|
||||
brew upgrade
|
||||
brew install measurement-kit
|
||||
$0 macos
|
||||
go test -v -race -coverprofile=coverage.cov -coverpkg=./... ./...
|
||||
;;
|
||||
|
||||
elif [ "$1" = "help" ]; then
|
||||
echo "Usage: $0 linux | macos | release | windows"
|
||||
*)
|
||||
echo "Usage: $0 linux|macos|windows|release"
|
||||
echo ""
|
||||
echo "Builds OONI on supported systems. The output binary will"
|
||||
echo "be saved at './dist/<system>/<arch>/ooniprobe[.exe]'."
|
||||
echo "You need a C compiler and Go >= 1.14. The C compiler must be a"
|
||||
echo "UNIX like compiler like GCC, Clang, Mingw-w64."
|
||||
echo ""
|
||||
echo "# Linux"
|
||||
echo "To build a static Linux binary, we use Docker and Alpine."
|
||||
echo ""
|
||||
echo "To compile for Linux we use a docker container with the binary"
|
||||
echo "Measurement Kit dependency installed. So you need docker installed."
|
||||
echo "You can cross compile for Windows from macOS or Linux. You can"
|
||||
echo "compile for Linux as long as you have Docker. Cross compiling for"
|
||||
echo "macOS has never been tested. We have a bunch of cross compiling"
|
||||
echo "checks inside the .github/workflows/cross.yml file."
|
||||
echo ""
|
||||
echo "# macOS"
|
||||
echo ""
|
||||
echo "You must be on macOS. You must install Measurement Kit once using:"
|
||||
echo ""
|
||||
echo "- brew tap measurement-kit/measurement-kit"
|
||||
echo "- brew install measurement-kit"
|
||||
echo ""
|
||||
echo "You should keep Measurement Kit up-to-date using:"
|
||||
echo ""
|
||||
echo "- brew upgrade"
|
||||
echo ""
|
||||
echo "# Release"
|
||||
echo ""
|
||||
echo "Will build ooniprobe for all supported systems."
|
||||
echo ""
|
||||
echo "# Windows"
|
||||
echo ""
|
||||
echo "You must be on macOS. You must install Measurement Kit once using:"
|
||||
echo ""
|
||||
echo "- brew tap measurement-kit/measurement-kit"
|
||||
echo "- brew install mingw-w64-measurement-kit"
|
||||
echo ""
|
||||
echo "You should keep Measurement Kit up-to-date using:"
|
||||
echo ""
|
||||
echo "- brew upgrade"
|
||||
echo ""
|
||||
|
||||
else
|
||||
echo "Invalid usage; try '$0 help' for more help." 1>&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
|
8
go.mod
8
go.mod
|
@ -4,13 +4,17 @@ go 1.14
|
|||
|
||||
require (
|
||||
github.com/alecthomas/kingpin v2.2.6+incompatible
|
||||
github.com/apex/log v1.6.0
|
||||
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d // indirect
|
||||
github.com/apex/log v1.9.0
|
||||
github.com/certifi/gocertifi v0.0.0-20200211180108-c7c1fbc02894 // indirect
|
||||
github.com/fatih/color v1.9.0
|
||||
github.com/getsentry/raven-go v0.0.0-20190419175539-919484f041ea
|
||||
github.com/mattn/go-colorable v0.1.7
|
||||
github.com/ooni/probe-engine v0.15.2
|
||||
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect
|
||||
github.com/ooni/probe-engine v0.16.0
|
||||
github.com/pkg/errors v0.9.1
|
||||
github.com/rubenv/sql-migrate v0.0.0-20200616145509-8d140a17f351
|
||||
golang.org/x/sys v0.0.0-20200820212457-1fb795427249 // indirect
|
||||
gopkg.in/AlecAivazis/survey.v1 v1.8.8
|
||||
gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 // indirect
|
||||
upper.io/db.v3 v3.7.1+incompatible
|
||||
|
|
56
go.sum
56
go.sum
|
@ -25,8 +25,8 @@ github.com/Psiphon-Labs/goptlib v0.0.0-20200406165125-c0e32a7a3464 h1:VmnMMMheFX
|
|||
github.com/Psiphon-Labs/goptlib v0.0.0-20200406165125-c0e32a7a3464/go.mod h1:Pe5BqN2DdIdChorAXl6bDaQd/wghpCleJfid2NoSli0=
|
||||
github.com/Psiphon-Labs/net v0.0.0-20191204183604-f5d60dada742 h1:te4lDZfA3tFwaheo+h/GZYGiLGJvm7Dcq2YkFh13QmE=
|
||||
github.com/Psiphon-Labs/net v0.0.0-20191204183604-f5d60dada742/go.mod h1:3mBCrUrPxFCKAhG0ZdEfiU7QU6zl2+gr1HUk1sKYdjI=
|
||||
github.com/Psiphon-Labs/psiphon-tunnel-core v2.0.12-0.20200706190114-761b4842e923+incompatible h1:c76E9yKZiStloyBp1lNFFuGmjf73Kldsk3jpgahE7Mc=
|
||||
github.com/Psiphon-Labs/psiphon-tunnel-core v2.0.12-0.20200706190114-761b4842e923+incompatible/go.mod h1:VcNEtiQ0z2sCGJf16ZGcpwCas5+r9rt+P20r6LlJ06U=
|
||||
github.com/Psiphon-Labs/psiphon-tunnel-core v2.0.12-0.20200819184412-10cb0192d244+incompatible h1:Fyx8JihDBE+YZG8iZTrJ+hgDIQd6OaRYMJ1lqf9R+Xk=
|
||||
github.com/Psiphon-Labs/psiphon-tunnel-core v2.0.12-0.20200819184412-10cb0192d244+incompatible/go.mod h1:VcNEtiQ0z2sCGJf16ZGcpwCas5+r9rt+P20r6LlJ06U=
|
||||
github.com/Psiphon-Labs/quic-go v0.14.1-0.20200306193310-474e74c89fab h1:LYp5/y2XR38yyDtNyEZBt0TtFaWgrYMNu3hEcN+om6c=
|
||||
github.com/Psiphon-Labs/quic-go v0.14.1-0.20200306193310-474e74c89fab/go.mod h1:I0Z7XA8KzHZl2MzwqEbZJhBQOHT8ajGUQ5+SWf5KHw0=
|
||||
github.com/Psiphon-Labs/tls-tris v0.0.0-20200610161156-7d791789810f h1:DZpr9KUNwaL+OjdT7JR+bkr7xXkvikTSMdpt6L1XX6Y=
|
||||
|
@ -48,17 +48,19 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuy
|
|||
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
||||
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4 h1:Hs82Z41s6SdL1CELW+XaDYmOH4hkBN4/N9og/AsOv7E=
|
||||
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
||||
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d h1:UQZhZ2O0vMHr2cI+DC1Mbh0TJxzA3RcLoMsFw+aXw7E=
|
||||
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/apex/log v1.6.0 h1:Y50wF1PBIIexIgTm0/7G6gcLitkO5jHK5Mb6wcMY0UI=
|
||||
github.com/apex/log v1.6.0/go.mod h1:x7s+P9VtvFBXge9Vbn+8TrqKmuzmD35TTkeBHul8UtY=
|
||||
github.com/apex/log v1.9.0 h1:FHtw/xuaM8AgmvDDTI9fiwoAL25Sq2cxojnZICUU8l0=
|
||||
github.com/apex/log v1.9.0/go.mod h1:m82fZlWIuiWzWP04XCTXmnX0xRkYYbCdYn8jbJeLBEA=
|
||||
github.com/apex/logs v1.0.0/go.mod h1:XzxuLZ5myVHDy9SAmYpamKKRNApGj54PfYLcFrXqDwo=
|
||||
github.com/aphistic/golf v0.0.0-20180712155816-02c07f170c5a/go.mod h1:3NqKYiepwy8kCu4PNA+aP7WUV72eXWJeP9/r3/K9aLE=
|
||||
github.com/aphistic/sweet v0.2.0/go.mod h1:fWDlIh/isSE9n6EPsRmC0det+whmX6dJid3stzu0Xys=
|
||||
github.com/aristanetworks/fsnotify v1.4.2/go.mod h1:D/rtu7LpjYM8tRJphJ0hUBYpjai8SfX+aSNsWDTq/Ks=
|
||||
github.com/aristanetworks/glog v0.0.0-20191112221043-67e8567f59f3/go.mod h1:KASm+qXFKs/xjSoWn30NrWBBvdTTQq+UjkhjEJHfSFA=
|
||||
github.com/aristanetworks/goarista v0.0.0-20200609010056-95bcf8053598 h1:VbwKXgO1O1JSbI8o3PQqlC/KTem5t3YD7LqvfBT+0Gk=
|
||||
github.com/aristanetworks/goarista v0.0.0-20200609010056-95bcf8053598/go.mod h1:QZe5Yh80Hp1b6JxQdpfSEEe8X7hTyTEZSosSrFf/oJE=
|
||||
github.com/aristanetworks/goarista v0.0.0-20200812190859-4cb0e71f3c0e h1:tkEt0le4Lv5+VmcxZPIVSrP8LVPLhndIm/BOP7iPh/w=
|
||||
github.com/aristanetworks/goarista v0.0.0-20200812190859-4cb0e71f3c0e/go.mod h1:QZe5Yh80Hp1b6JxQdpfSEEe8X7hTyTEZSosSrFf/oJE=
|
||||
github.com/aristanetworks/splunk-hec-go v0.3.3/go.mod h1:1VHO9r17b0K7WmOlLb9nTk/2YanvOEnLMUgsFrxBROc=
|
||||
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
|
||||
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
|
||||
|
@ -193,12 +195,14 @@ github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5a
|
|||
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 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w=
|
||||
github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/go-cmp v0.5.1 h1:JFrFEBb2xKufg6XkJsJr+WbKb4FQlURi5RUcBveYu9k=
|
||||
github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
|
||||
github.com/google/gxui v0.0.0-20151028112939-f85e0a97b3a4 h1:OL2d27ueTKnlQJoqLW2fc9pWYulFnJYLWzomGV7HqZo=
|
||||
github.com/google/gxui v0.0.0-20151028112939-f85e0a97b3a4/go.mod h1:Pw1H1OjSNHiqeuxAduB1BKYXIwFtsyrY47nEqSgEiCM=
|
||||
github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0=
|
||||
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
||||
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
|
||||
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8=
|
||||
|
@ -243,8 +247,8 @@ github.com/hinshun/vt10x v0.0.0-20180616224451-1954e6464174/go.mod h1:DqJ97dSdRW
|
|||
github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
|
||||
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/iancoleman/strcase v0.0.0-20191112232945-16388991a334 h1:VHgatEHNcBFEB7inlalqfNqw65aNkM1lGX2yt3NmbS8=
|
||||
github.com/iancoleman/strcase v0.0.0-20191112232945-16388991a334/go.mod h1:SK73tn/9oHe+/Y0h39VT4UCxmurVJkR5NA7kMEAOgSE=
|
||||
github.com/iancoleman/strcase v0.1.0 h1:Lar8rut26AXkJUmVOb2bRsFGv//+tJBeJLxXvpZpF1Q=
|
||||
github.com/iancoleman/strcase v0.1.0/go.mod h1:SK73tn/9oHe+/Y0h39VT4UCxmurVJkR5NA7kMEAOgSE=
|
||||
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/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o=
|
||||
|
@ -320,9 +324,11 @@ github.com/mattn/go-sqlite3 v1.12.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsO
|
|||
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
|
||||
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b h1:j7+1HpAFS1zy5+Q4qx1fWh90gTKwiN4QCGoY9TWyyO4=
|
||||
github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
|
||||
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d h1:5PJl274Y63IEHC+7izoQE9x6ikvDFZS2mDVS3drnohI=
|
||||
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
|
||||
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
|
||||
github.com/miekg/dns v1.1.30 h1:Qww6FseFn8PRfw07jueqIXqodm0JKiiKuK0DeXSqfyo=
|
||||
github.com/miekg/dns v1.1.30/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
|
||||
github.com/miekg/dns v1.1.31 h1:sJFOl9BgwbYAWOGEwr61FU28pqsBNdpRBnhGXtO06Oo=
|
||||
github.com/miekg/dns v1.1.31/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM=
|
||||
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-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
|
||||
|
@ -358,8 +364,8 @@ github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1Cpa
|
|||
github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
||||
github.com/onsi/gomega v1.7.0 h1:XPnZz8VVBHjVsy1vzJmRwIcSwiUO+JFfrv/xGiigmME=
|
||||
github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
||||
github.com/ooni/probe-engine v0.15.2 h1:qlOPuCBTl+S2V1vK8JZqwBtL/SOlzA2I4AdfeVzSgOM=
|
||||
github.com/ooni/probe-engine v0.15.2/go.mod h1:Gnn57oU1Sc1hUQamTPkjCO4pxWMJjl3rEVYY1LV1A6E=
|
||||
github.com/ooni/probe-engine v0.16.0 h1:aLhbSWculnYDxESseSzPSZFQOiqFcKQT/+QefSeCQvA=
|
||||
github.com/ooni/probe-engine v0.16.0/go.mod h1:MvO2uFbFy3D9M9hO3DA5bN6Sw+Ns+J4Nb+5cFK/PbNg=
|
||||
github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk=
|
||||
github.com/openconfig/gnmi v0.0.0-20190823184014-89b2bf29312c/go.mod h1:t+O9It+LKzfOAhKTT5O0ehDix+MTqbtT0T9t+7zzOvc=
|
||||
github.com/openconfig/reference v0.0.0-20190727015836-8dfd928c9696/go.mod h1:ym2A+zigScwkSEb/cVQB0/ZMpU3rqiH6X7WRRsxgOGw=
|
||||
|
@ -379,7 +385,7 @@ github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIw
|
|||
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
|
||||
github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc=
|
||||
github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ=
|
||||
github.com/pborman/getopt v0.0.0-20190409184431-ee0cd42419d3/go.mod h1:85jBQOZwpVEaDAr341tbn15RS4fCAsIst0qp7i8ex1o=
|
||||
github.com/pborman/getopt/v2 v2.0.0/go.mod h1:4NtW75ny4eBw9fO1bhtNdYTlZKYX5/tBLtsOpwKIKd0=
|
||||
github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
|
||||
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
|
||||
github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac=
|
||||
|
@ -422,16 +428,16 @@ github.com/redjack/marionette v0.0.0-20180818172807-360dd8f58226 h1:8+dAj8X8Lmdu
|
|||
github.com/redjack/marionette v0.0.0-20180818172807-360dd8f58226/go.mod h1:yJd0pT0e04p+VSmLGjce8BoPlRDlrGrdfXf2En7oq9A=
|
||||
github.com/refraction-networking/gotapdance v0.0.0-20190909202946-3a6e1938ad70 h1:EUwVKYIxba8xd9YeCG+63W2HiwKDPIw92F4pccOmXug=
|
||||
github.com/refraction-networking/gotapdance v0.0.0-20190909202946-3a6e1938ad70/go.mod h1:iBzxMSHu9kVV7v3Rc6vcDVCUDLsRGqLL3vtiR74JBvk=
|
||||
github.com/refraction-networking/utls v0.0.0-20200601200209-ada0bb9b38a0 h1:vIkvetWOJZSADSKCF9MLTsQNW2httdBmYz47dQQteP8=
|
||||
github.com/refraction-networking/utls v0.0.0-20200601200209-ada0bb9b38a0/go.mod h1:tz9gX959MEFfFN5whTIocCLUG57WiILqtdVxI8c6Wj0=
|
||||
github.com/refraction-networking/utls v0.0.0-20200729012536-186025ac7b77 h1:f+9aczEfJx9WNE7NMhRmQqPCspsFM+O/XAaiz8E5O1Q=
|
||||
github.com/refraction-networking/utls v0.0.0-20200729012536-186025ac7b77/go.mod h1:tz9gX959MEFfFN5whTIocCLUG57WiILqtdVxI8c6Wj0=
|
||||
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
|
||||
github.com/rogpeppe/fastuuid v1.1.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
|
||||
github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||
github.com/rogpeppe/go-internal v1.3.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
|
||||
github.com/rogpeppe/go-internal v1.4.0/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
|
||||
github.com/rogpeppe/go-internal v1.6.0 h1:IZRgg4sfrDH7nsAD1Y/Nwj+GzIfEwpJSLjCaNC3SbsI=
|
||||
github.com/rogpeppe/go-internal v1.6.0/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
|
||||
github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k=
|
||||
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
|
||||
github.com/rubenv/sql-migrate v0.0.0-20200616145509-8d140a17f351 h1:HXr/qUllAWv9riaI4zh2eXWKmCSDqVS/XH1MRHLKRwk=
|
||||
github.com/rubenv/sql-migrate v0.0.0-20200616145509-8d140a17f351/go.mod h1:DCgfY80j8GYL7MLEfvcpSFvjD0L5yZq/aZUJmhZklyg=
|
||||
github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
|
||||
|
@ -486,7 +492,7 @@ github.com/tj/assert v0.0.0-20171129193455-018094318fb0 h1:Rw8kxzWo1mr6FSaYXjQEL
|
|||
github.com/tj/assert v0.0.0-20171129193455-018094318fb0/go.mod h1:mZ9/Rh9oLWpLLDRpvE+3b7gP/C2YyLFYxNmcLnPTMe0=
|
||||
github.com/tj/assert v0.0.3 h1:Df/BlaZ20mq6kuai7f5z2TvPFiwC3xaWJSDQNiIS3Rk=
|
||||
github.com/tj/assert v0.0.3/go.mod h1:Ne6X72Q+TB1AteidzQncjw9PabbMp4PBMZ1k+vd1Pvk=
|
||||
github.com/tj/go-buffer v1.0.1/go.mod h1:iyiJpfFcR2B9sXu7KvjbT9fpM4mOelRSDTbntVj52Uc=
|
||||
github.com/tj/go-buffer v1.1.0/go.mod h1:iyiJpfFcR2B9sXu7KvjbT9fpM4mOelRSDTbntVj52Uc=
|
||||
github.com/tj/go-elastic v0.0.0-20171221160941-36157cbbebc2/go.mod h1:WjeM0Oo1eNAjXGDx2yma7uG2XoyRZTq1uv3M/o7imD0=
|
||||
github.com/tj/go-kinesis v0.0.0-20171128231115-08b17f58cb1b/go.mod h1:/yhzCV0xPfx6jb1bBgRFjl5lytqVqZXEaeqWP8lTEao=
|
||||
github.com/tj/go-spin v1.1.0/go.mod h1:Mg1mzmePZm4dva8Qz60H2lHwmJ2loum4VIrLgVnKwh4=
|
||||
|
@ -575,12 +581,13 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn
|
|||
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-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20190628185345-da137c7871d7/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-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||
golang.org/x/net v0.0.0-20200707034311-ab3426394381 h1:VXak5I6aEWmAXeQjA+QSZzlgNrpq9mjcfDemuexIKsU=
|
||||
golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||
golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc h1:zK/HqS5bZxDptfPJNq8v7vJfXtkU7r9TLIoSr1bXaP4=
|
||||
golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
|
||||
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=
|
||||
|
@ -620,8 +627,9 @@ golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7w
|
|||
golang.org/x/sys v0.0.0-20200219091948-cb0a6d8edb6c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200720211630-cb9d2d5c5666 h1:gVCS+QOncANNPlmlO1AhlU3oxs4V9z+gTtPwIk3p2N8=
|
||||
golang.org/x/sys v0.0.0-20200720211630-cb9d2d5c5666/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200819171115-d785dc25833f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200820212457-1fb795427249 h1:tKP05IMsVLZ4VeeCEFmrIUmxAAx6UD8IBdPtYlYNa8g=
|
||||
golang.org/x/sys v0.0.0-20200820212457-1fb795427249/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
|
||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
package bindata
|
||||
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"compress/gzip"
|
||||
|
@ -38,6 +39,7 @@ func bindataRead(data []byte, name string) ([]byte, error) {
|
|||
return buf.Bytes(), nil
|
||||
}
|
||||
|
||||
|
||||
type asset struct {
|
||||
bytes []byte
|
||||
info fileInfoEx
|
||||
|
@ -78,37 +80,45 @@ func (fi bindataFileInfo) Sys() interface{} {
|
|||
return nil
|
||||
}
|
||||
|
||||
var _dataDefaultConfigJson = []byte(
|
||||
"\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x5c\x91\x41\x4f\xc3\x30\x0c\x85\xef\xfd\x15\x56\xce\xb0\xc2\xb5\xff\x80" +
|
||||
"\x0b\x43\x82\x7b\x94\x25\xee\x6a\x29\xb3\x2b\x3b\x19\x9a\xd0\xfe\x3b\x4a\x57\x46\xe1\xfa\x3e\xdb\xef\x59\xef\xab" +
|
||||
"\x03\x70\xde\x0d\xe0\x3e\x26\x32\x20\x83\x8b\x54\x85\xfd\xfe\xf5\x05\xde\x54\x0e\x08\x51\x78\xa4\x23\x8c\x94\x71" +
|
||||
"\x07\xef\x88\x30\x95\x32\xdb\xd0\xf7\x22\x4c\x3b\x92\x7e\xc2\x3c\xf7\x73\x9b\x7d\x8c\x99\x60\x14\x85\x26\xb9\x87" +
|
||||
"\xe5\xf4\x19\xd5\x48\xd8\x0d\xf0\x7c\x13\x88\x47\xd1\x13\x26\x1f\x85\x0d\xb9\xb8\x01\xc6\x90\x0d\x17\x6a\x53\x50" +
|
||||
"\xe2\xa3\x1b\xa0\x05\x03\x70\xc4\x31\xd7\x84\x9e\xe6\xed\xdc\x06\x04\x6b\xb7\x8b\xd6\xff\x20\x4a\xe5\xa2\x97\xbf" +
|
||||
"\xb0\xce\x59\x42\xf2\x8a\x56\x73\xb1\x95\x75\x00\xd7\xc5\x9d\xb1\x14\xb4\x45\x5f\xed\x3f\xf1\x60\x54\xd0\x7c\xd5" +
|
||||
"\xec\x33\x9d\xa8\xc5\x7d\xba\x2f\x84\x74\x0e\x1c\x31\xfd\x2e\x54\x43\x9f\xe4\x14\x88\xfd\xa8\xc2\xe5\xf6\xcc\x36" +
|
||||
"\xb8\x21\x27\x1f\x35\xd8\xe4\x15\x67\xd1\x7b\x8c\x95\x47\xc9\x19\x63\x11\x6d\x9e\xad\x18\xb7\x82\x83\x54\x8e\x78" +
|
||||
"\x97\x7f\x6a\x58\xe5\xdd\x5a\x87\x6b\xe1\xba\x6b\xf7\x1d\x00\x00\xff\xff\x8e\xc0\xab\xe6\xd9\x01\x00\x00")
|
||||
var _bindataDataDefaultconfigjson = []byte(
|
||||
"\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x5c\x8f\x41\x4e\xc4\x30\x0c\x45\xf7\x3d\x85\x95\x35\x9a\x81\x6d\x2f\x63" +
|
||||
"\x65\x12\x0f\xb5\x94\xda\x95\xed\x0c\x42\x68\xee\x8e\x5a\xaa\x52\xd8\xfe\x97\x9f\xff\xfc\x35\x00\x24\x7c\x90\x39" +
|
||||
"\xab\xa4\x11\xde\x5e\xb6\x80\xe5\xae\x36\x53\xc5\xa2\xe2\x24\x91\x46\xb8\xe7\xe6\xb4\x51\x9f\xb2\xb1\xbc\xa7\x11" +
|
||||
"\xd6\x36\x40\x62\x29\xad\x57\x42\x5e\xce\xef\x4e\x20\xfb\xfa\x77\x58\xff\x0f\x8a\x76\x09\xfb\xfc\x0b\xfb\xd2\x34" +
|
||||
"\x57\x34\xf2\xde\xc2\x77\x36\x00\x3c\xb7\x75\xa1\x08\xf2\x2d\xdf\xe7\x3f\xe8\xe6\x1c\xe4\xd8\xad\x61\xe3\x99\x57" +
|
||||
"\xdd\xd7\xa3\x90\xeb\x23\x4b\xa1\xfa\x5b\xe8\x4e\x58\x75\xce\x2c\x78\x37\x95\xf8\x39\xe6\x2c\xee\x24\x15\x8b\x65" +
|
||||
"\x9f\xd0\x68\x51\x3b\x34\x76\x5e\xb4\x35\x2a\xa1\xb6\x6e\xa6\x11\x52\xda\xc1\x4d\xbb\x14\x3a\xe2\x29\x62\xf1\xf1" +
|
||||
"\x7a\xdd\xe3\x8b\xaa\xf0\x85\x35\xad\x72\xc3\x73\xf8\x0e\x00\x00\xff\xff\xfb\x1f\x97\x64\x7e\x01\x00\x00")
|
||||
|
||||
func dataDefaultConfigJsonBytes() ([]byte, error) {
|
||||
func bindataDataDefaultconfigjsonBytes() ([]byte, error) {
|
||||
return bindataRead(
|
||||
_dataDefaultConfigJson,
|
||||
_bindataDataDefaultconfigjson,
|
||||
"data/default-config.json",
|
||||
)
|
||||
}
|
||||
|
||||
func dataDefaultConfigJson() (*asset, error) {
|
||||
bytes, err := dataDefaultConfigJsonBytes()
|
||||
|
||||
|
||||
func bindataDataDefaultconfigjson() (*asset, error) {
|
||||
bytes, err := bindataDataDefaultconfigjsonBytes()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "data/default-config.json", size: 0, md5checksum: "", mode: os.FileMode(0), modTime: time.Unix(0, 0)}
|
||||
info := bindataFileInfo{
|
||||
name: "data/default-config.json",
|
||||
size: 0,
|
||||
md5checksum: "",
|
||||
mode: os.FileMode(0),
|
||||
modTime: time.Unix(0, 0),
|
||||
}
|
||||
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
|
||||
return a, nil
|
||||
}
|
||||
|
||||
var _dataMigrations1_create_msmt_resultsSql = []byte(
|
||||
var _bindataDataMigrations1createmsmtresultssql = []byte(
|
||||
"\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xa4\x59\x6d\x73\xdb\x36\x12\xfe\xee\x5f\xb1\xe3\xe9\xf4\xec\x39\x49\x76" +
|
||||
"\x72\x69\xe6\xce\xd7\x4e\xc7\xb5\x99\x9c\xda\x58\xca\xc8\xf2\x35\x99\x9b\x1b\x11\x22\x97\x12\x2a\x10\x60\xf0\x22" +
|
||||
"\x46\xf7\xeb\x6f\x16\x00\x29\x52\x56\x1c\x67\xda\x0f\xa9\x48\x02\x8b\x7d\x7d\xf6\x59\x78\x38\x84\xbf\x96\x7c\xa5" +
|
||||
|
@ -206,25 +216,35 @@ var _dataMigrations1_create_msmt_resultsSql = []byte(
|
|||
"\x7f\x10\x08\x32\x73\x9a\xdc\x6b\x14\x22\xf8\xa6\x6f\x4c\x6c\x24\xe7\x3d\x1b\xfc\xdf\xdb\xf6\xdf\x68\x00\xfe\xe2" +
|
||||
"\x5f\xf5\xfe\x1f\x00\x00\xff\xff\x38\xc6\x64\x22\x78\x1c\x00\x00")
|
||||
|
||||
func dataMigrations1_create_msmt_resultsSqlBytes() ([]byte, error) {
|
||||
func bindataDataMigrations1createmsmtresultssqlBytes() ([]byte, error) {
|
||||
return bindataRead(
|
||||
_dataMigrations1_create_msmt_resultsSql,
|
||||
_bindataDataMigrations1createmsmtresultssql,
|
||||
"data/migrations/1_create_msmt_results.sql",
|
||||
)
|
||||
}
|
||||
|
||||
func dataMigrations1_create_msmt_resultsSql() (*asset, error) {
|
||||
bytes, err := dataMigrations1_create_msmt_resultsSqlBytes()
|
||||
|
||||
|
||||
func bindataDataMigrations1createmsmtresultssql() (*asset, error) {
|
||||
bytes, err := bindataDataMigrations1createmsmtresultssqlBytes()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "data/migrations/1_create_msmt_results.sql", size: 0, md5checksum: "", mode: os.FileMode(0), modTime: time.Unix(0, 0)}
|
||||
info := bindataFileInfo{
|
||||
name: "data/migrations/1_create_msmt_results.sql",
|
||||
size: 0,
|
||||
md5checksum: "",
|
||||
mode: os.FileMode(0),
|
||||
modTime: time.Unix(0, 0),
|
||||
}
|
||||
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
|
||||
return a, nil
|
||||
}
|
||||
|
||||
var _dataMigrations2_single_msmt_fileSql = []byte(
|
||||
var _bindataDataMigrations2singlemsmtfilesql = []byte(
|
||||
"\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x56\x4d\x6f\xdb\x38\x10\xbd\xf3\x57\xcc\xd1\xc6\x2a\x8b\xdd\xb6\xc9" +
|
||||
"\xc5\xe8\x81\x91\x99\x54\xad\x4c\xa5\x14\x53\x34\x27\x89\xb5\x68\x47\x88\x4c\x0a\x24\xd5\x20\xff\xbe\x90\x3f\x6a" +
|
||||
"\xda\x96\x8d\x3a\x28\x8a\x1e\x74\x9d\x8f\xc7\x21\xe7\x0d\xe7\x5d\x5c\xc0\x3f\x8b\x72\x6e\x84\x93\x30\xd6\xcf\x0a" +
|
||||
|
@ -252,27 +272,40 @@ var _dataMigrations2_single_msmt_fileSql = []byte(
|
|||
"\x57\xde\xef\x5e\x79\xfb\x77\xec\x45\xc9\xdf\xd7\xa1\xf6\x0b\xe9\x96\x26\xba\x2a\x4e\x49\x93\x95\xfb\x7c\x69\xf2" +
|
||||
"\x23\x00\x00\xff\xff\xca\xeb\xb6\x24\x7c\x10\x00\x00")
|
||||
|
||||
func dataMigrations2_single_msmt_fileSqlBytes() ([]byte, error) {
|
||||
func bindataDataMigrations2singlemsmtfilesqlBytes() ([]byte, error) {
|
||||
return bindataRead(
|
||||
_dataMigrations2_single_msmt_fileSql,
|
||||
_bindataDataMigrations2singlemsmtfilesql,
|
||||
"data/migrations/2_single_msmt_file.sql",
|
||||
)
|
||||
}
|
||||
|
||||
func dataMigrations2_single_msmt_fileSql() (*asset, error) {
|
||||
bytes, err := dataMigrations2_single_msmt_fileSqlBytes()
|
||||
|
||||
|
||||
func bindataDataMigrations2singlemsmtfilesql() (*asset, error) {
|
||||
bytes, err := bindataDataMigrations2singlemsmtfilesqlBytes()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "data/migrations/2_single_msmt_file.sql", size: 0, md5checksum: "", mode: os.FileMode(0), modTime: time.Unix(0, 0)}
|
||||
info := bindataFileInfo{
|
||||
name: "data/migrations/2_single_msmt_file.sql",
|
||||
size: 0,
|
||||
md5checksum: "",
|
||||
mode: os.FileMode(0),
|
||||
modTime: time.Unix(0, 0),
|
||||
}
|
||||
|
||||
a := &asset{bytes: bytes, info: info}
|
||||
|
||||
return a, nil
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Asset loads and returns the asset for the given name.
|
||||
// It returns an error if the asset could not be found or
|
||||
// could not be loaded.
|
||||
//
|
||||
func Asset(name string) ([]byte, error) {
|
||||
cannonicalName := strings.Replace(name, "\\", "/", -1)
|
||||
if f, ok := _bindata[cannonicalName]; ok {
|
||||
|
@ -285,9 +318,11 @@ func Asset(name string) ([]byte, error) {
|
|||
return nil, &os.PathError{Op: "open", Path: name, Err: os.ErrNotExist}
|
||||
}
|
||||
|
||||
//
|
||||
// MustAsset is like Asset but panics when Asset would return an error.
|
||||
// It simplifies safe initialization of global variables.
|
||||
// nolint: deadcode
|
||||
//
|
||||
func MustAsset(name string) []byte {
|
||||
a, err := Asset(name)
|
||||
if err != nil {
|
||||
|
@ -297,9 +332,10 @@ func MustAsset(name string) []byte {
|
|||
return a
|
||||
}
|
||||
|
||||
//
|
||||
// AssetInfo loads and returns the asset info for the given name.
|
||||
// It returns an error if the asset could not be found or
|
||||
// could not be loaded.
|
||||
// It returns an error if the asset could not be found or could not be loaded.
|
||||
//
|
||||
func AssetInfo(name string) (os.FileInfo, error) {
|
||||
cannonicalName := strings.Replace(name, "\\", "/", -1)
|
||||
if f, ok := _bindata[cannonicalName]; ok {
|
||||
|
@ -312,8 +348,10 @@ func AssetInfo(name string) (os.FileInfo, error) {
|
|||
return nil, &os.PathError{Op: "open", Path: name, Err: os.ErrNotExist}
|
||||
}
|
||||
|
||||
//
|
||||
// AssetNames returns the names of the assets.
|
||||
// nolint: deadcode
|
||||
//
|
||||
func AssetNames() []string {
|
||||
names := make([]string, 0, len(_bindata))
|
||||
for name := range _bindata {
|
||||
|
@ -322,13 +360,16 @@ func AssetNames() []string {
|
|||
return names
|
||||
}
|
||||
|
||||
//
|
||||
// _bindata is a table, holding each asset generator, mapped to its name.
|
||||
//
|
||||
var _bindata = map[string]func() (*asset, error){
|
||||
"data/default-config.json": dataDefaultConfigJson,
|
||||
"data/migrations/1_create_msmt_results.sql": dataMigrations1_create_msmt_resultsSql,
|
||||
"data/migrations/2_single_msmt_file.sql": dataMigrations2_single_msmt_fileSql,
|
||||
"data/default-config.json": bindataDataDefaultconfigjson,
|
||||
"data/migrations/1_create_msmt_results.sql": bindataDataMigrations1createmsmtresultssql,
|
||||
"data/migrations/2_single_msmt_file.sql": bindataDataMigrations2singlemsmtfilesql,
|
||||
}
|
||||
|
||||
//
|
||||
// AssetDir returns the file names below a certain
|
||||
// directory embedded in the file by go-bindata.
|
||||
// For example if you run go-bindata on data/... and data contains the
|
||||
|
@ -342,6 +383,7 @@ var _bindata = map[string]func() (*asset, error){
|
|||
// AssetDir("data/img") would return []string{"a.png", "b.png"}
|
||||
// AssetDir("foo.txt") and AssetDir("notexist") would return an error
|
||||
// AssetDir("") will return []string{"data"}.
|
||||
//
|
||||
func AssetDir(name string) ([]string, error) {
|
||||
node := _bintree
|
||||
if len(name) != 0 {
|
||||
|
@ -350,12 +392,20 @@ func AssetDir(name string) ([]string, error) {
|
|||
for _, p := range pathList {
|
||||
node = node.Children[p]
|
||||
if node == nil {
|
||||
return nil, &os.PathError{Op: "open", Path: name, Err: os.ErrNotExist}
|
||||
return nil, &os.PathError{
|
||||
Op: "open",
|
||||
Path: name,
|
||||
Err: os.ErrNotExist,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if node.Func != nil {
|
||||
return nil, &os.PathError{Op: "open", Path: name, Err: os.ErrNotExist}
|
||||
return nil, &os.PathError{
|
||||
Op: "open",
|
||||
Path: name,
|
||||
Err: os.ErrNotExist,
|
||||
}
|
||||
}
|
||||
rv := make([]string, 0, len(node.Children))
|
||||
for childName := range node.Children {
|
||||
|
@ -364,17 +414,18 @@ func AssetDir(name string) ([]string, error) {
|
|||
return rv, nil
|
||||
}
|
||||
|
||||
|
||||
type bintree struct {
|
||||
Func func() (*asset, error)
|
||||
Children map[string]*bintree
|
||||
}
|
||||
|
||||
var _bintree = &bintree{nil, map[string]*bintree{
|
||||
"data": {nil, map[string]*bintree{
|
||||
"default-config.json": {dataDefaultConfigJson, map[string]*bintree{}},
|
||||
"migrations": {nil, map[string]*bintree{
|
||||
"1_create_msmt_results.sql": {dataMigrations1_create_msmt_resultsSql, map[string]*bintree{}},
|
||||
"2_single_msmt_file.sql": {dataMigrations2_single_msmt_fileSql, map[string]*bintree{}},
|
||||
var _bintree = &bintree{Func: nil, Children: map[string]*bintree{
|
||||
"data": {Func: nil, Children: map[string]*bintree{
|
||||
"default-config.json": {Func: bindataDataDefaultconfigjson, Children: map[string]*bintree{}},
|
||||
"migrations": {Func: nil, Children: map[string]*bintree{
|
||||
"1_create_msmt_results.sql": {Func: bindataDataMigrations1createmsmtresultssql, Children: map[string]*bintree{}},
|
||||
"2_single_msmt_file.sql": {Func: bindataDataMigrations2singlemsmtfilesql, Children: map[string]*bintree{}},
|
||||
}},
|
||||
}},
|
||||
}}
|
||||
|
|
|
@ -50,9 +50,6 @@ func (n WebConnectivity) Run(ctl *Controller) error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if err := builder.SetOptionString("LogLevel", "INFO"); err != nil {
|
||||
return err
|
||||
}
|
||||
return ctl.Run(builder, urls)
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -ex
|
||||
|
||||
./dist/${TRAVIS_OS_NAME}/amd64/ooniprobe onboard --yes
|
||||
./dist/${TRAVIS_OS_NAME}/amd64/ooniprobe run --config testdata/testing-config.json -v --no-collector
|
9
smoketest.sh
Executable file
9
smoketest.sh
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/bin/sh
|
||||
set -ex
|
||||
if [ "$#" != 1 ]; then
|
||||
echo "Usage: $0 <binary>" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
$1 onboard --yes
|
||||
# Important! DO NOT run performance from CI b/c it will overload m-lab servers
|
||||
$1 run websites --config testdata/testing-config.json -v --no-collector
|
10
updatebindata.sh
Executable file
10
updatebindata.sh
Executable file
|
@ -0,0 +1,10 @@
|
|||
#!/bin/sh
|
||||
set -ex
|
||||
go get -u github.com/shuLhan/go-bindata/...
|
||||
gobindata=`go env GOPATH`/bin/go-bindata
|
||||
version=`$gobindata -version | grep go-bin | cut -d ' ' -f2`
|
||||
if [ "$version" != "3.3.0" ]; then
|
||||
echo "FATAL: unexpected go-bindata version" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
$gobindata -nometadata -o internal/bindata/bindata.go -pkg bindata data/...
|
|
@ -3,5 +3,5 @@ package version
|
|||
|
||||
const (
|
||||
// Version is the software version
|
||||
Version = "3.0.6"
|
||||
Version = "3.0.7-beta"
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue
Block a user