Cirrus: Catch use of deprecated io/ioutil package
At the time of this commit, there's no easier way to detect this using
`golangci-lint` or the go tool (that I could find).  A future update
to the `go list` command may support detection, for now use a CI script.
@@ -233,6 +233,25 @@ function _run_consistency() {
SUGGESTION="run 'make generate-bindings' and commit all changes" ./hack/tree_status.sh
make completions
SUGGESTION="run 'make completions' and commit all changes" ./hack/tree_status.sh
+
+ if [[ -z "$CIRRUS_TAG" ]] && \
+ req_env_vars CIRRUS_CHANGE_IN_REPO CIRRUS_PR DEST_BRANCH
+ then
+ local base diffs regex i
+ # Prevent this check from detecting itself
+ i=i
+ msg "#####"
+ msg "Verifying no change adds new calls to ${i}o/${i}outil."
+ base=$(git merge-base $DEST_BRANCH $CIRRUS_CHANGE_IN_REPO)
+ diffs=$(git diff $base $CIRRUS_CHANGE_IN_REPO -- '*.go' ':^vendor/')
+ regex=$(echo -e "^(\\+.+${i}o/${i}outil)|(\\+.+${i}outil\\..+)")
+ if egrep -q "$regex"<<<"$diffs"; then
+ die "Found attempted use of deprecated ${i}outils:
+$(egrep -B 5 -A 5 "$regex"<<<"$diffs")"
+ fi
+ else
+ msg "Skipping check for ${i}o/${i}outil addition."
+ fi
}
function _run_build() {
