eth-statediff-compliance/scripts/update-mod.sh

35 lines
1006 B
Bash
Raw Normal View History

#!/bin/sh
# Usage: update-mod.sh <plugeth-statediff-dir> <target-go.mod-dir>
set -u
PLUGETH_STATEDIFF_DIR=$(readlink -f "$1")
TARGET_GOMOD_DIR=${2}
cd $TARGET_GOMOD_DIR
if [ $? -ne 0 ]; then
echo "Unable to cd to $TARGET_GOMOD_DIR"
exit 1
fi
CURRENT_REPLACEMENTS=$(go mod edit --json | jq -r '.Replace[] | "\(.Old.Path) \(.New.Path)"')
grep 'github.com/cerc-io/plugeth-statediff' go.mod >/dev/null
if [ $? -eq 0 ]; then
echo "github.com/cerc-io/plugeth-statediff=${PLUGETH_STATEDIFF_DIR}"
go mod edit --replace "github.com/cerc-io/plugeth-statediff=${PLUGETH_STATEDIFF_DIR}"
fi
for r in $(go mod edit --json "${PLUGETH_STATEDIFF_DIR}/go.mod" | jq -r '.Replace[] | "\(.Old.Path)=\(.New.Path)@\(.New.Version)"'); do
orig=$(echo $r | cut -d'=' -f1)
rep=$(echo $r | cut -d'=' -f2 | cut -d'@' -f1)
echo "$CURRENT_REPLACEMENTS" | grep "$orig" | grep "$rep" > /dev/null
if [ $? -ne 0 ]; then
continue;
fi
echo "$r"
go mod edit --replace "$r"
done
exec go mod tidy -e 2>/dev/null