35 lines
1006 B
Bash
35 lines
1006 B
Bash
|
#!/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
|