From 69ac1e36c43f4ce1616716882347067ee9f40c72 Mon Sep 17 00:00:00 2001
From: Chris Evich <cevich@redhat.com>
Date: Wed, 21 Sep 2022 15:08:18 -0400
Subject: [PATCH] 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.

Signed-off-by: Chris Evich <cevich@redhat.com>
---
 contrib/cirrus/runner.sh | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/contrib/cirrus/runner.sh b/contrib/cirrus/runner.sh
index 6b2d123f25..5b1bc8d5ce 100755
--- a/contrib/cirrus/runner.sh
+++ b/contrib/cirrus/runner.sh
@@ -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() {