diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..f1b219b --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: "gomod" + directory: "/" + schedule: + interval: "weekly" diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml new file mode 100644 index 0000000..55d123d --- /dev/null +++ b/.github/workflows/run-tests.yml @@ -0,0 +1,105 @@ +name: "Unit tests" + +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-18.04 + continue-on-error: ${{ matrix.experimental }} # Experimental builds may fail + + defaults: + run: + shell: bash -l -e -o pipefail {0} + + env: + WSI_CONDA_CHANNEL: "https://dnap.cog.sanger.ac.uk/npg/conda/devel/generic" + CONDA_TEST_ENVIRONMENT: "testenv" + + strategy: + matrix: + go: [ "1.16" ] + baton: [ "2.1.0" ] + experimental: [false] + include: + - irods: "4.2.7" + server_image: "wsinpg/ub-16.04-irods-4.2.7:latest" + experimental: false + - irods: "4.2.8" + server_image: "wsinpg/ub-18.04-irods-4.2.8:latest" + experimental: true + + services: + irods: + image: ${{ matrix.server_image }} + ports: + - 1247:1247 + + steps: + - uses: actions/checkout@v2 + + - name: "Set up Go ${{ matrix.go }}" + uses: actions/setup-go@v2 + with: + go-version: ${{ matrix.go }} + + - name: "Initialize Miniconda" + run: | + echo 'source $CONDA/etc/profile.d/conda.sh' >> "$HOME/.bash_profile" + + - name: "Configure Miniconda" + run: | + conda config --prepend pkgs_dirs "$HOME/conda/pkgs" + conda config --prepend envs_dirs "$HOME/conda/envs" + + conda config --set auto_update_conda False + conda config --prepend channels "$WSI_CONDA_CHANNEL" + conda config --append channels conda-forge + conda info + + - name: "Install iRODS clients" + run: | + conda create -y -n "$CONDA_TEST_ENVIRONMENT" + conda install -y -n "$CONDA_TEST_ENVIRONMENT" "irods-icommands ==${{ matrix.irods }}" + conda install -y -n "$CONDA_TEST_ENVIRONMENT" "baton ==${{ matrix.baton }}" + + - name: "Configure iRODS clients" + run: | + conda activate "$CONDA_TEST_ENVIRONMENT" + + mkdir -p "$HOME/.irods" + cat <<'EOF' > "$HOME/.irods/irods_environment.json" + { + "irods_host": "localhost", + "irods_port": 1247, + "irods_user_name": "irods", + "irods_zone_name": "testZone", + "irods_home": "/testZone/home/irods", + "irods_default_resource": "testResc" + } + EOF + + echo "irods" | script -q -c "iinit" /dev/null + ienv + ils + + baton-do --version + + - name: "Cache Go modules" + uses: actions/cache@v2 + with: + path: | + "$HOME/go/pkg/mod" + "$HOME/.cache/go-build" + key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} + restore-keys: | + ${{ runner.os }}-go- + + - name: "Install test runner" + run: | + go get github.com/onsi/ginkgo/ginkgo + go get github.com/onsi/gomega/... + + - name: "Run tests" + run: | + conda activate "$CONDA_TEST_ENVIRONMENT" + make test diff --git a/.travis.yml b/.travis.yml index 28db8df..01f5361 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,16 +6,25 @@ services: language: go go: - - "1.13" - "1.14" + - "1.15" + +_iRODS_4_2_8: &iRODS_4_2_8 DOCKER_IMAGE="wsinpg/ub-18.04-irods-4.2.8:latest" IRODS_VERSION="==4.2.8" BATON_VERSION=">2.0.1" env: global: - GO111MODULE=on - WSI_CONDA_CHANNEL="https://dnap.cog.sanger.ac.uk/npg/conda/devel/generic" - matrix: - - DOCKER_IMAGE="wsinpg/ub-12.04-irods-4.1:latest" IRODS_VERSION="==4.1.12" BATON_VERSION="==2.0.1" + jobs: - DOCKER_IMAGE="wsinpg/ub-16.04-irods-4.2.7:latest" IRODS_VERSION="==4.2.7" BATON_VERSION=">2.0.1" + - *iRODS_4_2_8 + +jobs: + allow_failures: + - go: "1.14" + env: *iRODS_4_2_8 + - go: "1.15" + env: *iRODS_4_2_8 cache: directories: diff --git a/CHANGELOG.md b/CHANGELOG.md index 303098e..2cf57d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,34 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [Unreleased] - [![Build Status](https://travis-ci.org/kjsanger/valet.svg?branch=devel)](https://travis-ci.org/kjsanger/valet) +## [Unreleased] - [![Unit tests](https://github.com/wtsi-npg/valet/actions/workflows/run-tests.yml/badge.svg)](https://github.com/wtsi-npg/valet/actions/workflows/run-tests.yml) + +### Added + +- Add Github Actions test workflow +- Improve recognition of files to be processed and archived +- Add support for TSV files. +- Add support for compressing CSV files. +- Add new all ONT-specific paths to the exclusion list. +- Add the /data/laboratory WSI-specific path to the exclusion list. +- Add iRODS 4.2.8 support + +### Removed + +- Remove iRODS 4.1.12 support + +### Changed + +- Relocate repository from github.com/kjsanger to github.com/wtsi-npg + +- Bump github.com/wtsi-npg/extendo/v2 from 2.2.0 to 2.4.0 +- Bump github.com/wtsi-npg/logshim from to 1.1.0 to 1.3.0 +- Bump github.com/wtsi-npg/logshim-zerolog from 1.1.0 to 1.3.0 +- Bump github.com/klauspost/pgzip from 1.2.1 to 1.2.5 +- Bump github.com/onsi/ginkgo from 1.12.3 to 1.16.1 +- Bump github.com/onsi/gomega from 1.10.1 to 1.11.0 +- Bump github.com/rs/zerolog from 1.19.1 to 1.21.0 +- Bump github.com/spf13/cobra from 0.0.5 to 0.0.7 ## [1.4.0] - 2020-09-14 @@ -16,7 +43,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Bump github.com/kjsanger/extendo from 2.1.0 to 2.2.0 +- Bump github.com/wtsi-npg/extendo from 2.1.0 to 2.2.0 ## [1.3.0] - 2020-06-02 @@ -26,7 +53,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed -- Bump github.com/kjsanger/extendo from 2.0.0 to 2.1.0 +- Bump github.com/wtsi-npg/extendo from 2.0.0 to 2.1.0 - Bump github.com/stretchr/testify from 1.5.1 to 1.6.0 - Bump github.com/onsi/ginkgo from 1.12.0 to 1.12.2 @@ -43,7 +70,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Improve verbose level logging for consistency and information. - Add to default paths to ignore in the data root. -- Bump github.com/kjsanger/extendo from 1.1.0 to 2.0.0 +- Bump github.com/wtsi-npg/extendo from 1.1.0 to 2.0.0 - Bump github.com/onsi/ginkgo from 1.10.3 to 1.12.0 - Bump github.com/onsi/gomega from 1.7.1 to 1.9.0 @@ -68,7 +95,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Changed -- Bump github.com/kjsanger/extendo from 1.0.0 to 1.1.0 +- Bump github.com/wtsi-npg/extendo from 1.0.0 to 1.1.0 - Bump github.com/onsi/gomega from 1.5.0 to 1.7.1 - Bump github.com/onsi/ginkgo from 1.8.0 to 1.10.3 - Bump github.com/rs/zerolog from 1.14.3 to 1.17.2 diff --git a/Makefile b/Makefile index 1348e3d..cffbdf4 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ VERSION := $(shell git describe --always --tags --dirty) -ldflags := "-X github.com/kjsanger/valet/valet.Version=${VERSION}" +ldflags := "-X github.com/wtsi-npg/valet/valet.Version=${VERSION}" build_path = "build/valet-${VERSION}" .PHONY: build coverage dist install lint test check clean @@ -11,7 +11,7 @@ install: build: mkdir -p ${build_path} - go build -v -ldflags ${ldflags} -o ${build_path}/valet github.com/kjsanger/valet + go build -v -ldflags ${ldflags} -o ${build_path}/valet github.com/wtsi-npg/valet lint: golangci-lint run ./... diff --git a/README.md b/README.md index 4713ff7..c97686c 100644 --- a/README.md +++ b/README.md @@ -3,8 +3,8 @@ ## Overview `valet` is a utility for performing data management tasks automatically. Once -started, `valet` will continue working until interrupted by SIGINT (^C) or -SIGTERM (kill), when it will stop gracefully. +started, `valet` will continue working until interrupted by `SIGINT` (^C) or +`SIGTERM` (kill), when it will stop gracefully. It monitors filesystem events and also performs filesystem walks to ensure that tasks are done in a timely fashion. @@ -20,24 +20,28 @@ disks filling. #### Compressing files -Some versions of MinKNOW to do not compress fastq files and no version -compresses the large sequencing_summary.txt files. `valet` compresses both of -these types with a simple gzip. +Some versions of MinKNOW do not compress fastq files and no version +compresses the large sequencing_summary.txt files. `valet` compresses +some files with gzip. - File patterns supported - - *.fastq$ - - *.txt$ + - `*.csv` + - `*.fastq` + - `*.txt` #### Archiving files - Files patterns supported - - *.csv$ - - *.fast5$ - - *.gz$ - - *.md$ - - *.pdf$ + - `*.csv` + - `*.fast5` + - `*.fastq` + - `*.gz` + - `*.md` + - `*.pdf` + - `*.tsv` + - `*.txt` #### Creating up-to-date checksum files @@ -55,7 +59,7 @@ it recognises for archiving. - Checksum file patterns supported - - (data file name).md5 + - `.md5` `valet` will monitor a directory hierarchy and locate data files within it that have no accompanying checksum file, or have a checksum file that is stale. @@ -64,7 +68,7 @@ have no accompanying checksum file, or have a checksum file that is stale. ### Operation `valet` is a command-line program with online help. Once launched it will -continue to run until signalled with SIGINT (^C) or SIGTERM (kill), when it +continue to run until signalled with `SIGINT` (^C) or `SIGTERM` (kill), when it will stop by cancelling the filesystem monitor and waiting for any running jobs to exit. @@ -116,16 +120,16 @@ function, or another) from operating on a particular file concurrently. ### Bugs -- See [GitHub issues](https://github.com/kjsanger/valet/issues?q=is%3Aissue+is%3Aopen+label%3Abug) +- See [GitHub issues](https://github.com/wtsi-npg/valet/issues?q=is%3Aissue+is%3Aopen+label%3Abug) #### Status -[![Build Status](https://travis-ci.org/kjsanger/valet.svg?branch=devel)](https://travis-ci.org/kjsanger/valet) +[![Unit tests](https://github.com/wtsi-npg/valet/actions/workflows/run-tests.yml/badge.svg)](https://github.com/wtsi-npg/valet/actions/workflows/run-tests.yml) #### Dependencies: -https://github.com/kjsanger/extendo +https://github.com/wtsi-npg/extendo Versions >= 2.0.0 diff --git a/cmd/archive.go b/cmd/archive.go index 6d995ad..fb7f000 100644 --- a/cmd/archive.go +++ b/cmd/archive.go @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019. Genome Research Ltd. All rights reserved. + * Copyright (C) 2019, 2021. Genome Research Ltd. All rights reserved. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,8 +23,8 @@ package cmd import ( "os" - logs "github.com/kjsanger/logshim" "github.com/spf13/cobra" + logs "github.com/wtsi-npg/logshim" ) var archiveCmd = &cobra.Command{ diff --git a/cmd/archive_annotate.go b/cmd/archive_annotate.go index cfab4f5..b93fe81 100644 --- a/cmd/archive_annotate.go +++ b/cmd/archive_annotate.go @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020. Genome Research Ltd. All rights reserved. + * Copyright (C) 2020, 2021. Genome Research Ltd. All rights reserved. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,13 +23,13 @@ package cmd import ( "os" - ex "github.com/kjsanger/extendo/v2" - logs "github.com/kjsanger/logshim" "github.com/pkg/errors" "github.com/spf13/cobra" + ex "github.com/wtsi-npg/extendo/v2" + logs "github.com/wtsi-npg/logshim" - "github.com/kjsanger/valet/utilities" - "github.com/kjsanger/valet/valet" + "github.com/wtsi-npg/valet/utilities" + "github.com/wtsi-npg/valet/valet" ) var archAnnotateFlags = &dataFileCliFlags{} diff --git a/cmd/archive_create.go b/cmd/archive_create.go index 93aa158..f256bd5 100644 --- a/cmd/archive_create.go +++ b/cmd/archive_create.go @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019, 2020. Genome Research Ltd. All rights reserved. + * Copyright (C) 2019, 2020, 2021. Genome Research Ltd. All rights reserved. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -25,12 +25,12 @@ import ( "os" "time" - ex "github.com/kjsanger/extendo/v2" - logs "github.com/kjsanger/logshim" "github.com/spf13/cobra" + ex "github.com/wtsi-npg/extendo/v2" + logs "github.com/wtsi-npg/logshim" - "github.com/kjsanger/valet/utilities" - "github.com/kjsanger/valet/valet" + "github.com/wtsi-npg/valet/utilities" + "github.com/wtsi-npg/valet/valet" ) diff --git a/cmd/checksum.go b/cmd/checksum.go index 29cf5dd..660b3f7 100644 --- a/cmd/checksum.go +++ b/cmd/checksum.go @@ -23,8 +23,8 @@ package cmd import ( "os" - logs "github.com/kjsanger/logshim" "github.com/spf13/cobra" + logs "github.com/wtsi-npg/logshim" ) var checksumFlags = &dataDirCliFlags{} diff --git a/cmd/checksum_create.go b/cmd/checksum_create.go index 97f2d01..ec4497b 100644 --- a/cmd/checksum_create.go +++ b/cmd/checksum_create.go @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019, 2020. Genome Research Ltd. All rights reserved. + * Copyright (C) 2019, 2020, 2021. Genome Research Ltd. All rights reserved. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -25,10 +25,10 @@ import ( "os" "time" - logs "github.com/kjsanger/logshim" "github.com/spf13/cobra" + logs "github.com/wtsi-npg/logshim" - "github.com/kjsanger/valet/valet" + "github.com/wtsi-npg/valet/valet" ) var checksumCreateCmd = &cobra.Command{ diff --git a/cmd/checksum_status.go b/cmd/checksum_status.go index 92a2383..6e167b1 100644 --- a/cmd/checksum_status.go +++ b/cmd/checksum_status.go @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019, 2020. Genome Research Ltd. All rights reserved. + * Copyright (C) 2019, 2020, 2021. Genome Research Ltd. All rights reserved. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -25,10 +25,10 @@ import ( "os" "sync" - logs "github.com/kjsanger/logshim" "github.com/spf13/cobra" + logs "github.com/wtsi-npg/logshim" - "github.com/kjsanger/valet/valet" + "github.com/wtsi-npg/valet/valet" ) var checksumStatusCmd = &cobra.Command{ diff --git a/cmd/valet.go b/cmd/valet.go index 7da09ba..67c1ad9 100644 --- a/cmd/valet.go +++ b/cmd/valet.go @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019, 2020. Genome Research Ltd. All rights reserved. + * Copyright (C) 2019, 2020, 2021. Genome Research Ltd. All rights reserved. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -35,11 +35,11 @@ import ( "github.com/rs/zerolog" "github.com/spf13/cobra" - "github.com/kjsanger/valet/utilities" - "github.com/kjsanger/valet/valet" + "github.com/wtsi-npg/valet/utilities" + "github.com/wtsi-npg/valet/valet" - logs "github.com/kjsanger/logshim" - "github.com/kjsanger/logshim-zerolog/zlog" + logs "github.com/wtsi-npg/logshim" + "github.com/wtsi-npg/logshim-zerolog/zlog" ) type baseCliFlags struct { diff --git a/go.mod b/go.mod index 84bcc74..c29159e 100644 --- a/go.mod +++ b/go.mod @@ -1,21 +1,21 @@ -module github.com/kjsanger/valet +module github.com/wtsi-npg/valet -go 1.13 +go 1.16 require ( - github.com/kjsanger/extendo/v2 v2.2.0 - github.com/kjsanger/fsnotify v1.4.8-0.20190705153444-45ca73e9793a - github.com/kjsanger/logshim v1.1.0 - github.com/kjsanger/logshim-zerolog v1.1.0 github.com/klauspost/compress v1.9.1 // indirect - github.com/klauspost/pgzip v1.2.1 - github.com/onsi/ginkgo v1.12.3 - github.com/onsi/gomega v1.10.1 + github.com/klauspost/pgzip v1.2.5 + github.com/onsi/ginkgo v1.16.1 + github.com/onsi/gomega v1.11.0 github.com/pkg/errors v0.9.1 - github.com/rs/zerolog v1.19.0 - github.com/spf13/cobra v0.0.5 - github.com/stretchr/testify v1.6.1 - golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4 + github.com/rs/zerolog v1.21.0 + github.com/spf13/cobra v0.0.7 + github.com/stretchr/testify v1.7.0 + github.com/wtsi-npg/extendo/v2 v2.4.0 + github.com/wtsi-npg/fsnotify v1.4.8-0.20190705153444-45ca73e9793a + github.com/wtsi-npg/logshim v1.3.0 + github.com/wtsi-npg/logshim-zerolog v1.3.0 + golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 ) -// replace github.com/kjsanger/extendo/v2 => ../extendo +// replace github.com/wtsi-npg/extendo/v2 => ../extendo diff --git a/go.sum b/go.sum index 0430380..84c4e00 100644 --- a/go.sum +++ b/go.sum @@ -1,147 +1,235 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= +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/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= -github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= +github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= 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/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM= +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-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-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= +github.com/gogo/protobuf v1.1.1/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-20190129154638-5b532d6fd5ef/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= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= 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.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +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 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/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.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/kjsanger/extendo/v2 v2.1.0 h1:gfQV0ifaVTEXTVk4S1KM/PsVChTnFs7oSpAQCM7TpGc= -github.com/kjsanger/extendo/v2 v2.1.0/go.mod h1:A0USxUEy/SfwCpj/DMaU3pYX/zSi1bl33jwb7TU6h+Y= -github.com/kjsanger/extendo/v2 v2.2.0 h1:81quL5c4OCjNWVVk/v079KRUdq4M/fpX6I/vZITh6rU= -github.com/kjsanger/extendo/v2 v2.2.0/go.mod h1:OjfcuhiYzg0yvbYfSmq+tnMC07eFHKtO+qafsOqecwk= -github.com/kjsanger/fsnotify v1.4.8-0.20190705153444-45ca73e9793a h1:eEXk79VRqIscsPHonU4g+oCU1KSt1zbJlOjQHU1RgOE= -github.com/kjsanger/fsnotify v1.4.8-0.20190705153444-45ca73e9793a/go.mod h1:4sKo+f997RhF5HZNa2h3t/N7TD7RNcbGzRO7xFpRBYM= -github.com/kjsanger/logshim v1.0.0/go.mod h1:a0VpOYrCQgfvQUqympQP5mTuGWz766IAbtPwHeA6PEE= -github.com/kjsanger/logshim v1.1.0 h1:43+UWmayDVVzTSuDYVeZrCZCwKyE+iahIODsxbtWVvk= -github.com/kjsanger/logshim v1.1.0/go.mod h1:drKALnhjaOKRtZjagdHMa4k6kgd8k03+rw93ShsNiCI= -github.com/kjsanger/logshim-zerolog v1.1.0 h1:gwpvOtJd17IE1GbVLgakbZDzNaUrEf96AlZeNdqnCEE= -github.com/kjsanger/logshim-zerolog v1.1.0/go.mod h1:U5/BO2owB1e49IJn4hTaoSatqnfA91izLrj7mbjXYI4= +github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +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/klauspost/compress v1.9.1 h1:TWy0o9J9c6LK9C8t7Msh6IAJNXbsU/nvKLTQUU5HdaY= github.com/klauspost/compress v1.9.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= -github.com/klauspost/pgzip v1.2.1 h1:oIPZROsWuPHpOdMVWLuJZXwgjhrW8r1yEX8UqMyeNHM= -github.com/klauspost/pgzip v1.2.1/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= +github.com/klauspost/pgzip v1.2.5 h1:qnWYvvKqedOF2ulHpMG72XQol4ILEJ8k2wwRl/Km8oE= +github.com/klauspost/pgzip v1.2.5/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/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/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78= +github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= +github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= +github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= +github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.12.0 h1:Iw5WCbBcaAAd0fpRb1c9r5YCylv4XDoCSigm1zLevwU= -github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.12.3 h1:+RYp9QczoWz9zfUyLP/5SLXQVhfr6gZOoKGfQqHuLZQ= -github.com/onsi/ginkgo v1.12.3/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= +github.com/onsi/ginkgo v1.16.1 h1:foqVmeWDD6yYpK+Yz3fHyNIxFYNxswxqNFjSKe+vI54= +github.com/onsi/ginkgo v1.16.1/go.mod h1:CObGmKUOKaSC0RjmoAK7tKyn4Azo5P2IWuoMnvwxz1E= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.9.0 h1:R1uwffexN6Pr340GtYRIdZmAiN4J+iw6WG4wog1DUXg= -github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= -github.com/onsi/gomega v1.10.1 h1:o0+MgICZLuZ7xjH7Vx6zS/zcu93/BEp1VwkIW1mEXCE= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/onsi/gomega v1.11.0 h1:+CqWgvj0OZycCaqclBD1pxKHAU+tOkHmQIWvDHq2aug= +github.com/onsi/gomega v1.11.0/go.mod h1:azGKhqFUon9Vuj0YmTfLSmx0FUwqXYSTl5re8lQLTUg= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +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/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= +github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= -github.com/rs/zerolog v1.17.2/go.mod h1:9nvC1axdVrAHcu/s9taAVfBuIdTZLVQmKQyvrUjF5+I= -github.com/rs/zerolog v1.18.0 h1:CbAm3kP2Tptby1i9sYy2MGRg0uxIN9cyDb59Ys7W8z8= -github.com/rs/zerolog v1.18.0/go.mod h1:9nvC1axdVrAHcu/s9taAVfBuIdTZLVQmKQyvrUjF5+I= -github.com/rs/zerolog v1.19.0 h1:hYz4ZVdUgjXTBUmrkrw55j1nHx68LfOKIQk5IYtyScg= -github.com/rs/zerolog v1.19.0/go.mod h1:IzD0RJ65iWH0w97OQQebJEvTZYvsCUm9WVLWBQrJRjo= -github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/rs/zerolog v1.21.0 h1:Q3vdXlfLNT+OftyBHsU0Y445MD+8m8axjKgf2si0QcM= +github.com/rs/zerolog v1.21.0/go.mod h1:ZPhntP/xmq1nnND05hhpAh2QMhSsA4UN3MGZ6O2J3hM= +github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +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/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v0.0.5 h1:f0B+LkLX6DtmRH1isoNA9VTtNUK9K8xYd28JNNfOv/s= -github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= +github.com/spf13/cobra v0.0.7 h1:FfTH+vuMXOas8jmfb5/M7dzEYx7LpcLb7a0LPe34uOU= +github.com/spf13/cobra v0.0.7/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= +github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= 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 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -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/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= +github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= +github.com/wtsi-npg/extendo/v2 v2.4.0 h1:rbBbVklHGoobwQiovcfs1d7znaniBVlempgBAL0uEUI= +github.com/wtsi-npg/extendo/v2 v2.4.0/go.mod h1:/mi30w9nekV6fYUGb1T7zvX3Kspy9HQKh2IzSQIJIOw= +github.com/wtsi-npg/fsnotify v1.4.8-0.20190705153444-45ca73e9793a h1:LmzJGJXUS8U69eZ08MjwKwii8mos8630pV3aSZRdmc0= +github.com/wtsi-npg/fsnotify v1.4.8-0.20190705153444-45ca73e9793a/go.mod h1:/ux2ROeuYmj0JshWH6r5f+gvLIJP2ZbMutVFrW6/8Pg= +github.com/wtsi-npg/logshim v1.2.0 h1:d9y9XvBRkYB2bUsN07zGJWhGCu13PKoxIxQE97Q9aZw= +github.com/wtsi-npg/logshim v1.2.0/go.mod h1:1JRn1t/rlx1/oAtv3LOcshcpjDDvHGHCK8p8ua0Hrss= +github.com/wtsi-npg/logshim v1.3.0 h1:J4JIzWrEVC6RghSdnhadjviOwAwQ4BUqG7hveqxrisY= +github.com/wtsi-npg/logshim v1.3.0/go.mod h1:O1IqtDB3IiWuIpEE42IznMkJD8d++UFp40gBSjps3ac= +github.com/wtsi-npg/logshim-zerolog v1.3.0 h1:7BoTUhTKtBwuduc+8mCcsYVWCAptqFY1CT1Y3pSjoaw= +github.com/wtsi-npg/logshim-zerolog v1.3.0/go.mod h1:yWGzgCuHUkg1tcKcF0DBKi2laec69EIUMkXl77P2yII= +github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= -github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/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-20190701094942-4def268fd1a4 h1:HuIa8hRrWRSrqYzx1qI49NNxhdi2PrY7gxVSq1JjLDc= -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 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +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-20181114220301-adae6a3d119a/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-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-20190620200207-3b0461eec859 h1:R/3boaszxrf1GEUWTVDzSKVwLmSJpwZ1yqXm8j0v2QI= +golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7 h1:AeiKBIuRw3UomYXSbLy0Mc2dDLfdtbT/IVn4keq83P0= golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb h1:eBmm0M9fYhWpKZLjQUUKka/LtIxf46G4fxeEz5KJr9U= +golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU= +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-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +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-20181205085412-a5c9d58dba9a/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-20190215142949-d0b11bdaac8a/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-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e h1:N7DeIrjYszNmSW409R3frPPwglRwMkXSBzwVbkOjLLA= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200519105757-fe76b779f299 h1:DYfZAGf2WMFjMxbgTjaC+2HC7NkNAQs+6Q8b9WEB/F4= -golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4 h1:myAQVi0cGEoqQVR5POX+8RR2mrocKqNN1hmeMqhX27k= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/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= +golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/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-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190828213141-aed303cbaa74/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7 h1:9zdDQZ7Thm29KFXgAX/+yaf3eVbP7djjWp/dXAppNCc= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= 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= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +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/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +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 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I= gopkg.in/yaml.v2 v2.2.4/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.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/main.go b/main.go index 8202188..67e487b 100644 --- a/main.go +++ b/main.go @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019. Genome Research Ltd. All rights reserved. + * Copyright (C) 2019, 2021. Genome Research Ltd. All rights reserved. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,7 +21,7 @@ package main import ( - "github.com/kjsanger/valet/cmd" + "github.com/wtsi-npg/valet/cmd" ) func main() { diff --git a/scripts/travis_install.sh b/scripts/travis_install.sh index 9d0181d..fc6aef5 100755 --- a/scripts/travis_install.sh +++ b/scripts/travis_install.sh @@ -12,8 +12,8 @@ echo "conda activate base" >> ~/.bashrc . ~/miniconda/etc/profile.d/conda.sh conda activate base conda config --set auto_update_conda False -conda config --add channels "$WSI_CONDA_CHANNEL" -conda config --add channels conda-forge +conda config --prepend channels "$WSI_CONDA_CHANNEL" +conda config --append channels conda-forge conda create -y -n travis conda activate travis @@ -22,31 +22,16 @@ conda install -y baton"$BATON_VERSION" mkdir -p ~/.irods -if [[ "$IRODS_VERSION" =~ 4\.1\.12 ]] -then - cat < ~/.irods/irods_environment.json +cat <<'EOF' > ~/.irods/irods_environment.json { "irods_host": "localhost", "irods_port": 1247, "irods_user_name": "irods", "irods_zone_name": "testZone", "irods_home": "/testZone/home/irods", - "irods_plugins_home": "$HOME/miniconda/envs/travis/lib/irods/plugins/", "irods_default_resource": "testResc" } EOF -else - cat <<'EOF' > ~/.irods/irods_environment.json -{ - "irods_host": "localhost", - "irods_port": 1247, - "irods_user_name": "irods", - "irods_zone_name": "testZone", - "irods_home": "/testZone/home/irods", - "irods_default_resource": "testResc" -} -EOF -fi go get github.com/onsi/ginkgo/ginkgo go get github.com/onsi/gomega/... diff --git a/scripts/valet_archive_create.sh b/scripts/valet_archive_create.sh index c7a709e..b33d5e3 100755 --- a/scripts/valet_archive_create.sh +++ b/scripts/valet_archive_create.sh @@ -54,9 +54,9 @@ conda activate "$CONDA_ENV" && \ --root "$DATA_ROOT" \ --archive-root "$ARCHIVE_ROOT" \ --exclude "$SAFE_ROOT" \ - --exclude "$DATA_ROOT/pings" \ - --exclude "$DATA_ROOT/reports" \ + --exclude "$DATA_ROOT/laboratory" \ --max-proc "$MAX_PROC" \ --interval "$INTERVAL" \ --delete-on-archive \ --verbose >> "$LOG_FILE" 2>&1 + diff --git a/valet/channels.go b/valet/channels.go index da633ee..3380eb7 100644 --- a/valet/channels.go +++ b/valet/channels.go @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019. Genome Research Ltd. All rights reserved. + * Copyright (C) 2019, 2021. Genome Research Ltd. All rights reserved. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,7 +20,7 @@ package valet -import "github.com/kjsanger/logshim" +import "github.com/wtsi-npg/logshim" // MergeFileChannels merges values from its two input channels x and y for as // long as at least one of them is open. One both x and y have been closed, the diff --git a/valet/helpers_test.go b/valet/helpers_test.go index 1e8aa94..489639f 100644 --- a/valet/helpers_test.go +++ b/valet/helpers_test.go @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019. Genome Research Ltd. All rights reserved. + * Copyright (C) 2019, 2021. Genome Research Ltd. All rights reserved. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -27,11 +27,11 @@ import ( "os" "path/filepath" - ex "github.com/kjsanger/extendo/v2" . "github.com/onsi/ginkgo" + ex "github.com/wtsi-npg/extendo/v2" - "github.com/kjsanger/valet/utilities" - "github.com/kjsanger/valet/valet" + "github.com/wtsi-npg/valet/utilities" + "github.com/wtsi-npg/valet/valet" ) type itemPathTransform func(i []ex.RodsItem) []string diff --git a/valet/pathfind.go b/valet/pathfind.go index 93afb46..7ad317e 100644 --- a/valet/pathfind.go +++ b/valet/pathfind.go @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019, 2020. Genome Research Ltd. All rights reserved. + * Copyright (C) 2019, 2020, 2021. Genome Research Ltd. All rights reserved. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -26,7 +26,7 @@ import ( "path/filepath" "time" - logs "github.com/kjsanger/logshim" + logs "github.com/wtsi-npg/logshim" ) const DefaultSweep = 5 * time.Minute diff --git a/valet/pathproc.go b/valet/pathproc.go index 1b0ea93..49839b7 100644 --- a/valet/pathproc.go +++ b/valet/pathproc.go @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019, 2020. Genome Research Ltd. All rights reserved. + * Copyright (C) 2019, 2020, 2021. Genome Research Ltd. All rights reserved. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -25,8 +25,8 @@ import ( "sync" "time" - logs "github.com/kjsanger/logshim" "github.com/pkg/errors" + logs "github.com/wtsi-npg/logshim" ) type token struct{} diff --git a/valet/pathprune.go b/valet/pathprune.go index 399de6d..da061b7 100644 --- a/valet/pathprune.go +++ b/valet/pathprune.go @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019. Genome Research Ltd. All rights reserved. + * Copyright (C) 2019, 2021. Genome Research Ltd. All rights reserved. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,19 +23,25 @@ package valet import ( "path/filepath" - logs "github.com/kjsanger/logshim" + logs "github.com/wtsi-npg/logshim" ) // Directory names within the root MinKNOW data directory (typically /data) // that we will ignore by default. var MinKNOWIgnore = []string{ + "core-dump-db", + "devices", "epi2me_inside", "intermediate", + "logs", + "lost+found", + "network", "npg", "pings", "queued_reads", "reads", "reports", + "user_scripts", } // DefaultIgnorePatterns returns glob patterns matching directories in the root diff --git a/valet/pathwatch.go b/valet/pathwatch.go index 4cfd058..18b0064 100644 --- a/valet/pathwatch.go +++ b/valet/pathwatch.go @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019, 2020. Genome Research Ltd. All rights reserved. + * Copyright (C) 2019, 2020, 2021. Genome Research Ltd. All rights reserved. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -25,11 +25,11 @@ import ( "os" "path/filepath" - "github.com/kjsanger/fsnotify" - logs "github.com/kjsanger/logshim" "github.com/pkg/errors" + "github.com/wtsi-npg/fsnotify" + logs "github.com/wtsi-npg/logshim" - "github.com/kjsanger/valet/utilities" + "github.com/wtsi-npg/valet/utilities" ) // WatchFiles reports filesystem events on the directories below root. Watches diff --git a/valet/predicates.go b/valet/predicates.go index 6eca27c..c680c27 100644 --- a/valet/predicates.go +++ b/valet/predicates.go @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019, 2020. Genome Research Ltd. All rights reserved. + * Copyright (C) 2019, 2020, 2021. Genome Research Ltd. All rights reserved. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -26,11 +26,11 @@ import ( "path/filepath" "regexp" - ex "github.com/kjsanger/extendo/v2" - logs "github.com/kjsanger/logshim" "github.com/pkg/errors" + ex "github.com/wtsi-npg/extendo/v2" + logs "github.com/wtsi-npg/logshim" - "github.com/kjsanger/valet/utilities" + "github.com/wtsi-npg/valet/utilities" ) type FilePredicate func(path FilePath) (bool, error) @@ -40,18 +40,20 @@ const FastqSuffix string = "fastq" // The recognised suffix for fastq files const CSVSuffix string = "csv" const MarkdownSuffix string = "md" const TxtSuffix string = "txt" +const TsvSuffix string = "tsv" const PDFSuffix string = "pdf" const MD5Suffix string = "md5" // The recognised suffix for MD5 checksum files const GzipSuffix string = "gz" -var fast5Regex = regexp.MustCompile(fmt.Sprintf(".*[.]%s$", Fast5Suffix)) -var fastqRegex = regexp.MustCompile(fmt.Sprintf(".*[.]%s$", FastqSuffix)) -var txtRegex = regexp.MustCompile(fmt.Sprintf(".*[.]%s$", TxtSuffix)) -var markdownRegex = regexp.MustCompile(fmt.Sprintf(".*[.]%s$", MarkdownSuffix)) -var pdfRegex = regexp.MustCompile(fmt.Sprintf(".*[.]%s$", PDFSuffix)) -var csvRegex = regexp.MustCompile(fmt.Sprintf(".*[.]%s$", CSVSuffix)) -var gzipRegex = regexp.MustCompile(fmt.Sprintf(".*[.]%s$", GzipSuffix)) -var reportRegex = regexp.MustCompile(fmt.Sprintf("report.*[.]%s$", MarkdownSuffix)) +var fast5Regex = regexp.MustCompile(fmt.Sprintf("(?i).*[.]%s$", Fast5Suffix)) +var fastqRegex = regexp.MustCompile(fmt.Sprintf("(?i).*[.]%s$", FastqSuffix)) +var txtRegex = regexp.MustCompile(fmt.Sprintf("(?i).*[.]%s$", TxtSuffix)) +var tsvRegex = regexp.MustCompile(fmt.Sprintf("(?i).*[.]%s$", TsvSuffix)) +var markdownRegex = regexp.MustCompile(fmt.Sprintf("(?i).*[.]%s$", MarkdownSuffix)) +var pdfRegex = regexp.MustCompile(fmt.Sprintf("(?i).*[.]%s$", PDFSuffix)) +var csvRegex = regexp.MustCompile(fmt.Sprintf("(?i).*[.]%s$", CSVSuffix)) +var gzipRegex = regexp.MustCompile(fmt.Sprintf("(?i).*[.]%s$", GzipSuffix)) +var reportRegex = regexp.MustCompile(fmt.Sprintf("(?i)report.*[.]%s$", MarkdownSuffix)) // Matches the run ID of MinKNOW c. August 2019 for GridION and PromethION // i.e. of the form: @@ -64,9 +66,10 @@ var RequiresCopying = Or( IsFast5, And(IsFastq, IsCompressed), And(IsTxt, IsCompressed), + And(IsCSV, IsCompressed), IsMarkdown, IsPDF, - IsCSV) + IsTSV) // RequiresChecksum returns true if the argument is a regular file that is // recognised as a checksum target and either has no checksum file, or has a @@ -79,7 +82,7 @@ var RequiresChecksum = And( var HasValidChecksumFile = Not(HasStaleChecksumFile) var RequiresCompression = And( - Or(IsFastq, IsTxt), + Or(IsFastq, IsTxt, IsCSV), Not(IsCompressed), Not(HasCompressedVersion)) @@ -171,7 +174,7 @@ func IsTxt(path FilePath) (bool, error) { // IsMarkdown returns true if path matches the recognised markdown file // pattern. func IsMarkdown(path FilePath) (bool, error) { - return markdownRegex.MatchString(path.Location), nil + return markdownRegex.MatchString(path.UncompressedFilename()), nil } // IsPDF returns true if path matches the recognised PDF file pattern. @@ -181,7 +184,12 @@ func IsPDF(path FilePath) (bool, error) { // IsCSV returns true if path matches the recognised CSV file pattern. func IsCSV(path FilePath) (bool, error) { - return csvRegex.MatchString(path.Location), nil + return csvRegex.MatchString(path.UncompressedFilename()), nil +} + +// IsTSV returns true if path matches the recognised TSV file pattern. +func IsTSV(path FilePath) (bool, error) { + return tsvRegex.MatchString(path.UncompressedFilename()), nil } // IsCompressed returns true if the path matches the recognised compressed file diff --git a/valet/predicates_test.go b/valet/predicates_test.go index 75aa6e9..9f2c8af 100644 --- a/valet/predicates_test.go +++ b/valet/predicates_test.go @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019. Genome Research Ltd. All rights reserved. + * Copyright (C) 2019, 2021. Genome Research Ltd. All rights reserved. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -29,7 +29,7 @@ import ( "github.com/stretchr/testify/assert" - "github.com/kjsanger/valet/utilities" + "github.com/wtsi-npg/valet/utilities" ) func TestIsDir(t *testing.T) { @@ -102,6 +102,20 @@ func TestIsGzipFastqMatch(t *testing.T) { } } +func TestIsGzipCSVMatch(t *testing.T) { + csv, _ := NewFilePath("./testdata/valet/1/ancillarey.csv.gz") + + ok, err := IsCompressed(csv) + if assert.NoError(t, err) { + assert.True(t, ok, "expected true for a gzipped CSV file") + } + + ok, err = IsCSV(csv) + if assert.NoError(t, err) { + assert.True(t, ok, "expected true for a gzipped CSV file") + } +} + func TestIsCompressed(t *testing.T) { fq1, _ := NewFilePath("./testdata/valet/1/reads/fastq/reads1.fastq") ok1, err1 := IsCompressed(fq1) diff --git a/valet/report.go b/valet/report.go index e39992e..751b672 100644 --- a/valet/report.go +++ b/valet/report.go @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020. Genome Research Ltd. All rights reserved. + * Copyright (C) 2020, 2021. Genome Research Ltd. All rights reserved. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -26,8 +26,8 @@ import ( "regexp" "strings" - ex "github.com/kjsanger/extendo/v2" "github.com/pkg/errors" + ex "github.com/wtsi-npg/extendo/v2" ) const dutyTimeField = "Duty Time" diff --git a/valet/report_test.go b/valet/report_test.go index 1ec60ac..b4c77a5 100644 --- a/valet/report_test.go +++ b/valet/report_test.go @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020. Genome Research Ltd. All rights reserved. + * Copyright (C) 2020, 2021. Genome Research Ltd. All rights reserved. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,8 +23,8 @@ package valet import ( "testing" - ex "github.com/kjsanger/extendo/v2" "github.com/stretchr/testify/assert" + ex "github.com/wtsi-npg/extendo/v2" ) func TestParsePromethIONReport(t *testing.T) { diff --git a/valet/suite_test.go b/valet/suite_test.go index 7cfe366..03af408 100644 --- a/valet/suite_test.go +++ b/valet/suite_test.go @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019. Genome Research Ltd. All rights reserved. + * Copyright (C) 2019, 2021. Genome Research Ltd. All rights reserved. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -25,12 +25,12 @@ import ( "testing" "time" - "github.com/kjsanger/logshim-zerolog/zlog" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/rs/zerolog" + "github.com/wtsi-npg/logshim-zerolog/zlog" - logs "github.com/kjsanger/logshim" + logs "github.com/wtsi-npg/logshim" ) func TestValet(t *testing.T) { diff --git a/valet/testdata/platform/ont/minknow/gridion/66/DN585561I_A1/20190904_1514_GA20000_FAL01979_43578c8f/barcode_alignment_FAL01979_43578c8f.tsv b/valet/testdata/platform/ont/minknow/gridion/66/DN585561I_A1/20190904_1514_GA20000_FAL01979_43578c8f/barcode_alignment_FAL01979_43578c8f.tsv new file mode 100644 index 0000000..f1e8d0f --- /dev/null +++ b/valet/testdata/platform/ont/minknow/gridion/66/DN585561I_A1/20190904_1514_GA20000_FAL01979_43578c8f/barcode_alignment_FAL01979_43578c8f.tsv @@ -0,0 +1 @@ +f1f11e36-76c8-11eb-a698-d789d03e9d9a diff --git a/valet/testdata/valet/1/ancillary.csv.gz b/valet/testdata/valet/1/ancillary.csv.gz new file mode 100644 index 0000000..33ae7e6 Binary files /dev/null and b/valet/testdata/valet/1/ancillary.csv.gz differ diff --git a/valet/valet_suite_test.go b/valet/valet_suite_test.go index 4c953e0..375913f 100644 --- a/valet/valet_suite_test.go +++ b/valet/valet_suite_test.go @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019, 2020. Genome Research Ltd. All rights reserved. + * Copyright (C) 2019, 2020, 2021. Genome Research Ltd. All rights reserved. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -29,12 +29,12 @@ import ( "sync" "time" - ex "github.com/kjsanger/extendo/v2" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" + ex "github.com/wtsi-npg/extendo/v2" - "github.com/kjsanger/valet/cmd" - "github.com/kjsanger/valet/valet" + "github.com/wtsi-npg/valet/cmd" + "github.com/wtsi-npg/valet/valet" ) var _ = Describe("Find directories)", func() { @@ -111,6 +111,7 @@ var _ = Describe("Find regular files)", func() { When("using a file predicate", func() { It("should find files", func() { expectedPaths := []string{ + "1/ancillary.csv.gz", "1/reads/fast5/reads1.fast5", "1/reads/fast5/reads1.fast5.md5", "1/reads/fast5/reads2.fast5", @@ -280,6 +281,7 @@ var _ = Describe("Find files at intervals", func() { dataDir = "testdata/valet" expectedPaths = []string{ + "1/ancillary.csv.gz", "1/reads/fast5/reads1.fast5", "1/reads/fast5/reads1.fast5.md5", "1/reads/fast5/reads2.fast5", @@ -863,10 +865,12 @@ var _ = Describe("Archive MINKnow files", func() { "DN585561I_A1_sequencing_summary.txt.gz", "66/DN585561I_A1/20190904_1514_GA20000_FAL01979_43578c8f/" + "final_summary.txt.gz", - "66/DN585561I_A1/20190904_1514_GA20000_FAL01979_43578c8f/duty_time.csv", + "66/DN585561I_A1/20190904_1514_GA20000_FAL01979_43578c8f/duty_time.csv.gz", "66/DN585561I_A1/20190904_1514_GA20000_FAL01979_43578c8f/report.md", "66/DN585561I_A1/20190904_1514_GA20000_FAL01979_43578c8f/report.pdf", - "66/DN585561I_A1/20190904_1514_GA20000_FAL01979_43578c8f/throughput.csv", + "66/DN585561I_A1/20190904_1514_GA20000_FAL01979_43578c8f/throughput.csv.gz", + "66/DN585561I_A1/20190904_1514_GA20000_FAL01979_43578c8f/" + + "barcode_alignment_FAL01979_43578c8f.tsv", // Fast5 fail "66/DN585561I_A1/20190904_1514_GA20000_FAL01979_43578c8f/fast5_fail/" + @@ -1050,7 +1054,7 @@ var _ = Describe("Archive MINKnow files", func() { var _ = Describe("Count files without a checksum", func() { var ( numFilesFound uint64 - numFilesExpected uint64 = 5 // fast5, fastq.gz and md (reports) + numFilesExpected uint64 = 6 // csv, fast5, fastq.gz and md (reports) ) BeforeEach(func() { diff --git a/valet/workfunc.go b/valet/workfunc.go index 9e4fc83..210b065 100644 --- a/valet/workfunc.go +++ b/valet/workfunc.go @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019, 2020. Genome Research Ltd. All rights reserved. + * Copyright (C) 2019, 2020, 2021. Genome Research Ltd. All rights reserved. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -32,13 +32,13 @@ import ( "sort" "strings" - ex "github.com/kjsanger/extendo/v2" "github.com/klauspost/pgzip" "github.com/pkg/errors" + ex "github.com/wtsi-npg/extendo/v2" - "github.com/kjsanger/valet/utilities" + "github.com/wtsi-npg/valet/utilities" - logs "github.com/kjsanger/logshim" + logs "github.com/wtsi-npg/logshim" ) // WorkFunc is a worker function used by DoProcessFiles. diff --git a/valet/workfunc_test.go b/valet/workfunc_test.go index fbaf47e..a088762 100644 --- a/valet/workfunc_test.go +++ b/valet/workfunc_test.go @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019. Genome Research Ltd. All rights reserved. + * Copyright (C) 2019, 2021. Genome Research Ltd. All rights reserved. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -33,13 +33,13 @@ import ( "testing" "time" - logs "github.com/kjsanger/logshim" - "github.com/kjsanger/logshim-zerolog/zlog" "github.com/pkg/errors" "github.com/rs/zerolog" "github.com/stretchr/testify/assert" + logs "github.com/wtsi-npg/logshim" + "github.com/wtsi-npg/logshim-zerolog/zlog" - "github.com/kjsanger/valet/utilities" + "github.com/wtsi-npg/valet/utilities" ) func TestMain(m *testing.M) {