mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-10-31 05:40:42 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			87 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env bash
 | |
| 
 | |
| # Copyright 2021 The Kubernetes Authors.
 | |
| #
 | |
| # Licensed under the Apache License, Version 2.0 (the "License");
 | |
| # you may not use this file except in compliance with the License.
 | |
| # You may obtain a copy of the License at
 | |
| #
 | |
| #     http://www.apache.org/licenses/LICENSE-2.0
 | |
| #
 | |
| # Unless required by applicable law or agreed to in writing, software
 | |
| # distributed under the License is distributed on an "AS IS" BASIS,
 | |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
| # See the License for the specific language governing permissions and
 | |
| # limitations under the License.
 | |
| 
 | |
| # This script checks whether updating of Mock files generated from Interfaces
 | |
| # is needed or not. We should run `hack/update-mocks.sh` 
 | |
| # if Mock files are out of date.
 | |
| # Usage: `hack/verify-mocks.sh`.
 | |
| 
 | |
| 
 | |
| set -o errexit
 | |
| set -o nounset
 | |
| set -o pipefail
 | |
| 
 | |
| KUBE_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
 | |
| export KUBE_ROOT
 | |
| source "${KUBE_ROOT}/hack/lib/init.sh"
 | |
| 
 | |
| # Explicitly opt into go modules, even though we're inside a GOPATH directory
 | |
| export GO111MODULE=on
 | |
| 
 | |
| _tmp="${KUBE_ROOT}/_tmp"
 | |
| mkdir -p "${_tmp}"
 | |
| 
 | |
| "${KUBE_ROOT}/hack/update-mocks.sh"
 | |
| 
 | |
| # If there are untracked generated mock files which needed to be committed
 | |
| if git_status=$(git status --porcelain --untracked=normal 2>/dev/null) && [[ -n "${git_status}" ]]; then
 | |
|   echo "!!! You may have untracked mock files."
 | |
| fi
 | |
| 
 | |
| # get the changed mock files
 | |
| files=$(git diff --name-only)
 | |
| 
 | |
| # copy the changed files to the _tmp directory for later comparison
 | |
| mock_files=()
 | |
| for file in $files; do
 | |
|   if [ "$file" == "hack/verify-mocks.sh" ]; then
 | |
|     continue
 | |
|   fi
 | |
| 
 | |
|   # create the directory in _tmp
 | |
|   mkdir -p "$_tmp/""$(dirname "$file")"
 | |
|   cp "$file" "$_tmp/""$file"
 | |
|   mock_files+=("$file")
 | |
| 
 | |
|   # reset the current file
 | |
|   git checkout "$file"
 | |
| done
 | |
| 
 | |
| echo "diffing process started for ${#mock_files[@]} files"
 | |
| ret=0
 | |
| for file in "${mock_files[@]}"; do
 | |
|   diff -Naupr -B \
 | |
|     -I '^/\*' \
 | |
|     -I 'Copyright The Kubernetes Authors.' \
 | |
|     -I 'Licensed under the Apache License, Version 2.0 (the "License");' \
 | |
|     -I 'you may not use this file except in compliance with the License.' \
 | |
|     -I 'You may obtain a copy of the License at' \
 | |
|     -I 'http://www.apache.org/licenses/LICENSE-2.0' \
 | |
|     -I 'Unless required by applicable law or agreed to in writing, software' \
 | |
|     -I 'distributed under the License is distributed on an "AS IS" BASIS,' \
 | |
|     -I 'WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.' \
 | |
|     -I 'See the License for the specific language governing permissions and' \
 | |
|     -I 'limitations under the License.' \
 | |
|     -I '^\*/' \
 | |
|     "$file" "$_tmp/""$file" || ret=$?
 | |
| 
 | |
|   if [[ $ret -ne 0 ]]; then
 | |
|     echo "Mock files are out of date. Please run hack/update-mocks.sh" >&2
 | |
|     exit 1
 | |
|   fi
 | |
| done
 | |
| echo "up to date"
 |