#!/bin/sh # Usage: update-mod.sh 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