Skip to content

Commit

Permalink
Make boilerplate hook work for .sh files, too.
Browse files Browse the repository at this point in the history
  • Loading branch information
lavalamp committed Jun 26, 2014
1 parent 61b0073 commit 260af30
Show file tree
Hide file tree
Showing 12 changed files with 91 additions and 3 deletions.
2 changes: 2 additions & 0 deletions cluster/config-default.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#!/bin/bash

# Copyright 2014 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
Expand Down
2 changes: 2 additions & 0 deletions cluster/config-test.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#!/bin/bash

# Copyright 2014 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
Expand Down
2 changes: 2 additions & 0 deletions cluster/templates/download-release.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#!/bin/bash

# Copyright 2014 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
Expand Down
2 changes: 2 additions & 0 deletions cluster/templates/salt-master.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#!/bin/bash

# Copyright 2014 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
Expand Down
2 changes: 2 additions & 0 deletions cluster/templates/salt-minion.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#!/bin/bash

# Copyright 2014 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
Expand Down
2 changes: 2 additions & 0 deletions cluster/util.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#!/bin/bash

# Copyright 2014 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
Expand Down
2 changes: 2 additions & 0 deletions hack/config-go.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#!/bin/bash

# Copyright 2014 Google Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
Expand Down
28 changes: 27 additions & 1 deletion hack/verify-boilerplate.sh
Original file line number Diff line number Diff line change
@@ -1,12 +1,26 @@
#!/bin/bash

# Copyright 2014 Google Inc. All rights reserved.
#
# 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.

REPO_ROOT="$(realpath "$(dirname $0)/..")"

result=0

dirs=("pkg" "cmd")

for dir in ${dirs}; do
for dir in ${dirs[@]}; do
for file in $(grep -r -l "" "${REPO_ROOT}/${dir}/" | grep "[.]go"); do
if [[ "$(${REPO_ROOT}/hooks/boilerplate.sh "${file}")" -eq "0" ]]; then
echo "Boilerplate header is wrong for: ${file}"
Expand All @@ -15,4 +29,16 @@ for dir in ${dirs}; do
done
done

dirs=("cluster" "hack" "hooks")

for dir in ${dirs[@]}; do
for file in $(grep -r -l "" "${REPO_ROOT}/${dir}/" | grep "[.]sh"); do
if [[ "$(${REPO_ROOT}/hooks/boilerplate.sh "${file}")" -eq "0" ]]; then
echo "Boilerplate header is wrong for: ${file}"
result=1
fi
done
done


exit ${result}
File renamed without changes.
27 changes: 25 additions & 2 deletions hooks/boilerplate.sh
Original file line number Diff line number Diff line change
@@ -1,9 +1,32 @@
#!/bin/bash

# Copyright 2014 Google Inc. All rights reserved.
#
# 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.

# Print 1 if the file in $1 has the correct boilerplate header, 0 otherwise.
FILE=$1
LINES=$(cat "$(dirname $0)/boilerplate.txt" | wc -l | tr -d ' ')
DIFFER=$(head "-${LINES}" "${FILE}" | diff -q - "$(dirname $0)/boilerplate.txt")
EXT=${FILE#*.}

REF_FILE="$(dirname $0)/boilerplate.${EXT}.txt"

if [[ ! -e "${REF_FILE}" ]]; then
echo "1"
exit 0
fi

LINES=$(cat "${REF_FILE}" | wc -l | tr -d ' ')
DIFFER=$(head "-${LINES}" "${FILE}" | diff -q - "${REF_FILE}")

if [[ -z "${DIFFER}" ]]; then
echo "1"
Expand Down
16 changes: 16 additions & 0 deletions hooks/boilerplate.sh.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/bin/bash

# Copyright 2014 Google Inc. All rights reserved.
#
# 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.

9 changes: 9 additions & 0 deletions hooks/prepare-commit-msg
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,15 @@ for file in $(git diff --cached --name-only --diff-filter ACM | grep "\.go" | gr
fi
done

# Check sh files for boilerplate
for file in $(git diff --cached --name-only --diff-filter ACM | grep "\.sh" | grep -v "third_party"); do
# Check for files without the required boilerplate.
boilerplate="$(${KUBE_HOOKS_DIR}/boilerplate.sh ${file})"
if [[ "$boilerplate" -eq "0" ]]; then
files_need_boilerplate="${files_need_boilerplate} ${file}"
fi
done

if [[ -n "${files_need_gofmt}" ]]; then
(
echo
Expand Down

0 comments on commit 260af30

Please sign in to comment.