#!/bin/bash # Root of repo ROOT_DIR='.' # Repo full go path REPO='github.com/hyperledger-labs/weaver-dlt-interoperability' VERSION=$1 GOMODULE_PATHS=("core/network/fabric-interop-cc/libs/utils" "core/network/fabric-interop-cc/libs/assetexchange" "core/network/fabric-interop-cc/interfaces/asset-mgmt" "core/network/fabric-interop-cc/contracts/interop" "sdks/fabric/go-sdk" "samples/fabric/go-cli" "samples/fabric/simpleasset" "samples/fabric/simpleassetandinterop" "samples/fabric/simpleassettransfer" "samples/fabric/simplestatewithacl" "samples/fabric/simplestate") for GOMODULE in ${GOMODULE_PATHS[@]}; do echo "############# START $GOMODULE ################" echo $GOMODULE pushd $ROOT_DIR/$GOMODULE GOMOD_DEPS=$((go mod graph | grep "$REPO/$GOMODULE $REPO" | cut -d ' ' -f 2) || (echo "ERROR: In generating dependency graph" && exit 1)) popd for GOMOD_DEP in ${GOMOD_DEPS[@]}; do echo "--------- START DEP -----------" GOMOD_PATH=$(echo $GOMOD_DEP | cut -d '@' -f 1 | awk -F "$REPO/" '{print $2}') echo "DEP: $GOMOD_DEP" echo "DEP: $GOMOD_PATH" cp $ROOT_DIR/LICENSE $ROOT_DIR/$GOMOD_PATH pushd $ROOT_DIR/$GOMOD_PATH GOMOD_NAME="$REPO/$GOMOD_PATH" if [ ! -f VERSION ]; then echo "INFO: VERSION absent" popd echo "------------ END --------------" continue fi (cat VERSION | grep "$VERSION") || echo $VERSION > VERSION GOMOD_VERSION=v$(cat VERSION) GOMOD_SUM=$(go-checksum . $GOMOD_NAME@$GOMOD_VERSION | grep "GoCheckSum" | cut -d ' ' -f 2 | cut -d '"' -f 2) GOMOD_DOTMOD_SUM=$(go-checksum go.mod | grep "GoCheckSum" | cut -d ' ' -f 2 | cut -d '"' -f 2) GOMOD_SUM_ENTRY="$GOMOD_NAME $GOMOD_VERSION $GOMOD_SUM" GOMOD_DOTMOD_SUM_ENTRY="$GOMOD_NAME $GOMOD_VERSION/go.mod $GOMOD_DOTMOD_SUM" echo "----" echo "GOSUM: $GOMOD_SUM_ENTRY" echo "GOSUM: $GOMOD_DOTMOD_SUM_ENTRY" echo "----" popd rm $ROOT_DIR/$GOMOD_PATH/LICENSE pushd $ROOT_DIR/$GOMODULE UPDATE=false (cat go.mod | grep -q "$GOMOD_NAME $GOMOD_VERSION") || UPDATE=True if $UPDATE; then go mod edit -require $GOMOD_NAME@$GOMOD_VERSION else echo "ERROR: Version $GOMOD_VERSION already there in go.mod, skipping $GOMOD_PATH in $GOMODULE" fi UPDATE=false (cat go.sum | grep -q "$GOMOD_SUM_ENTRY") || UPDATE=True (cat go.sum | grep -q "$GOMOD_DOTMOD_SUM_ENTRY") || UPDATE=True if $UPDATE; then # mv go.sum go.sum.old # grep -v "$GOMOD_NAME $GOMOD_VERSION" go.sum.old > go.sum echo "$GOMOD_SUM_ENTRY" >> go.sum echo "$GOMOD_DOTMOD_SUM_ENTRY" >> go.sum else echo "ERROR: Version $GOMOD_VERSION already there in go.sum, skipping $GOMOD_PATH in $GOMODULE" fi popd echo "------------ END --------------" done echo "############# END $GOMODULE ################\n" done