github.com/google/go-github/v74@v74.0.0/script/generate.sh (about) 1 #!/bin/sh 2 #/ script/generate.sh runs go generate on all modules in this repo. 3 #/ `script/generate.sh --check` checks that the generated files are up to date. 4 5 set -e 6 7 CDPATH="" cd -- "$(dirname -- "$0")/.." 8 9 # force 1.22.0 default and "auto" toolchain (i.e., use the toolchain directive) 10 # when running generate and mod tidy 11 export GOTOOLCHAIN="go1.22.0+auto" 12 13 if [ "$1" = "--check" ]; then 14 GENTEMP="$(mktemp -d)" 15 git worktree add -q --detach "$GENTEMP" 16 trap 'git worktree remove -f "$GENTEMP"; rm -rf "$GENTEMP"' EXIT 17 for f in $(git ls-files -com --exclude-standard); do 18 target="$GENTEMP/$f" 19 mkdir -p "$(dirname -- "$target")" 20 cp "$f" "$target" 21 done 22 if [ -f "$(pwd)"/bin ]; then 23 ln -s "$(pwd)"/bin "$GENTEMP"/bin 24 fi 25 ( 26 cd "$GENTEMP" 27 git add . 28 git -c user.name='bot' -c user.email='bot@localhost' commit -m "generate" -q --allow-empty 29 script/generate.sh 30 [ -z "$(git status --porcelain)" ] || { 31 msg="Generated files are out of date. Please run script/generate.sh and commit the results" 32 if [ -n "$GITHUB_ACTIONS" ]; then 33 echo "::error ::$msg" 34 else 35 echo "$msg" 1>&2 36 fi 37 git diff 38 exit 1 39 } 40 ) 41 exit 0 42 fi 43 44 MOD_DIRS="$(git ls-files '*go.mod' | xargs dirname | sort)" 45 46 for dir in $MOD_DIRS; do 47 ( 48 cd "$dir" 49 go generate ./... 50 go mod tidy 51 ) 52 done