27 lines
791 B
Bash
Executable File
27 lines
791 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
if [ -z ${1+x} ]; then
|
|
echo "USAGE:
|
|
./scripts/go-update-dep-all.sh <go-mod-dependency>
|
|
This command updates a dependency in all of the go.mod files which import it.
|
|
It should be called with a single argument which is the go module path of the dependency,
|
|
with an optional version specified by @."
|
|
exit
|
|
fi
|
|
|
|
dependency=$1
|
|
# in case the user explicitly specified a dependency version with @, we separate
|
|
# the dependency module name into dependency_mod
|
|
IFS='@' read -ra dependency_mod <<< "$dependency"
|
|
dependency_mod=${dependency_mod[0]}
|
|
|
|
for modfile in $(find . -name go.mod); do
|
|
if grep $dependency_mod $modfile &> /dev/null; then
|
|
echo "Updating $modfile"
|
|
DIR=$(dirname $modfile)
|
|
(cd $DIR; go get -u $dependency)
|
|
fi
|
|
done
|