cosmos-sdk/scripts/dep-assert.sh
2024-08-19 13:14:34 +00:00

43 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
set -o errexit
CWD=$(pwd)
# no simapp imports in modules
SIMAPP_REGEX="cosmossdk.io/simapp"
find . -type f -name 'go.mod' -print0 | while IFS= read -r -d '' file
do
d=$(dirname "$file")
if [[ "$d" =~ \./simapp$|\./simapp/v2$|\./tests* ]]; then
continue
fi
if cd "$CWD/$d" && go list -test -f '{{ .Imports }}' ./... | grep -q -E "${SIMAPP_REGEX}"; then
echo "${d} has a dependency on simapp!"
exit 1
fi
done
# no runtime/v2 or server/v2 imports in x/ modules
RUNTIMEV2_REGEX="cosmossdk.io/runtime/v2"
SEVERV2_REGEX="cosmossdk.io/server/v2"
XEXP_REGEX="golang.org/x/exp"
find ./x/ -type f -name 'go.mod' -print0 | while IFS= read -r -d '' file
do
d=$(dirname "$file")
if cd "$CWD/$d" && go list -test -f '{{ .Imports }}' ./... | grep -q -E "${RUNTIMEV2_REGEX}"; then
echo "${d} has a dependency on runtime/v2!"
exit 1
fi
if cd "$CWD/$d" && go list -test -f '{{ .Imports }}' ./... | grep -q -E "${SEVERV2_REGEX}"; then
echo "${d} has a dependency on server/v2!"
exit 1
fi
if cd "$CWD/$d" && go list -test -f '{{ .Imports }}' ./... | grep -q -E "${XEXP_REGEX}"; then
echo "${d} has a dependency on golang.org/x/exp"
exit 1
fi
done