github.com/google/go-github/v71@v71.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