ooni-probe-cli/script/nocopyreadall.bash
Simone Basso 15da0f5344
cleanup(jafar): do not depend on netx and urlgetter (#792)
There's no point in doing that. Also, once this change is merged, it becomes easier to cleanup/simplify netx.

See https://github.com/ooni/probe/issues/2121
2022-06-02 22:25:37 +02:00

34 lines
1.0 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
exitcode=0
for file in $(find . -type f -name \*.go); do
if [ "$file" = "./internal/netxlite/iox.go" ]; then
# We're allowed to use ReadAll and Copy in this file to
# implement safer wrappers for these functions.
continue
fi
if [ "$file" = "./internal/netxlite/filtering/http.go" ]; then
# We're allowed to use ReadAll and Copy in this file to
# avoid depending on netxlite, so we can use filtering
# inside of netxlite's own test suite.
continue
fi
if grep -q 'io\.ReadAll' $file; then
echo "in $file: do not use io.ReadAll, use netxlite.ReadAllContext" 1>&2
exitcode=1
fi
if grep -q 'ioutil\.ReadAll' $file; then
echo "in $file: do not use ioutil.ReadAll, use netxlite.ReadAllContext" 1>&2
exitcode=1
fi
if grep -q 'io\.Copy' $file; then
echo "in $file: do not use io.Copy, use netxlite.CopyContext" 1>&2
exitcode=1
fi
if grep -q 'ioutil\.Copy' $file; then
echo "in $file: do not use ioutil.Copy, use netxlite.CopyContext" 1>&2
exitcode=1
fi
done
exit $exitcode