...
1#!/usr/bin/env bash
2
3# Copyright 2018 The Kubernetes Authors.
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16
17# This script checks whether the expected metadata files (such as OWNERS and
18# LICENSE) exist under the `staging/src/k8s.io/*` directories.
19# Usage: `hack/verify-staging-meta-files.sh`.
20
21set -o errexit
22set -o nounset
23set -o pipefail
24
25KUBE_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
26
27expected_filenames=(
28 .github/PULL_REQUEST_TEMPLATE.md
29 code-of-conduct.md
30 LICENSE
31 OWNERS
32 README.md
33 SECURITY_CONTACTS
34)
35
36exceptions=(
37 client-go/README.md # client-go provides its own README
38)
39
40RESULT=0
41for full_repo_path in "${KUBE_ROOT}"/staging/src/k8s.io/*; do
42 repo=$(basename "${full_repo_path}")
43 for filename in "${expected_filenames[@]}"; do
44 if echo " ${exceptions[*]} " | grep -F " ${repo}/${filename} " >/dev/null; then
45 continue
46 elif [ ! -f "${KUBE_ROOT}/staging/src/k8s.io/${repo}/${filename}" ]; then
47 echo "staging/src/k8s.io/${repo}/${filename} does not exist and must be created"
48 RESULT=1
49 fi
50 done
51done
52
53exit $RESULT
View as plain text