scripts: Verify that we are not using restricted packages

It checks that we are not directly importing 'sync/atomic'.

Signed-off-by: Javier Palomo <javier.palomo.almena@gmail.com>
This commit is contained in:
Javier Palomo 2020-07-28 14:44:42 +02:00
parent e825a3fab3
commit 278d32748e
2 changed files with 33 additions and 1 deletions

View File

@ -118,7 +118,7 @@ endif
%: common-% ;
.PHONY: common-all
common-all: precheck style check_license lint unused build test
common-all: precheck restricted_imports style check_license lint unused build test
.PHONY: common-style
common-style:
@ -270,6 +270,11 @@ proto:
@echo ">> generating code from proto files"
@./scripts/genproto.sh
.PHONY: common-restricted_imports
common-restricted_imports:
@echo ">> verifying that we are not using restricted packages"
@./scripts/check_restricted_imports.sh
ifdef GOLANGCI_LINT
$(GOLANGCI_LINT):
mkdir -p $(FIRST_GOPATH)/bin

View File

@ -0,0 +1,27 @@
#!/usr/bin/env bash
#
# Checks that restricted packages are not being imported.
# Run from repository root.
#set -e
set -u
if ! [[ "$0" =~ "scripts/check_restricted_imports.sh" ]]; then
echo "must be run from repository root"
exit 255
fi
exit_status=0
packages=(
"sync/atomic"
)
for package in "${packages[@]}"
do
# Grep exits with 0 if there is at least one match
if output=$(grep -nir "${package}" --exclude-dir=vendor --exclude-dir=scripts ./*); then
exit_status=1
echo "Restricted package '${package}' is being used in the following files:"
echo "${output}"
fi
done
exit ${exit_status}