kythe.io@v0.0.68-0.20240422202219-7225dbc01741/tools/git/setup_hooks.sh (about) 1 #!/bin/bash -e 2 # 3 # Copyright 2018 The Kythe Authors. All rights reserved. 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 cd "$(dirname "$0")"/../.. 18 19 setup_hook() { 20 local hook="$1" 21 local path=".git/hooks/$hook" 22 local script="tools/git/${hook}.sh" 23 local stmt="if [[ -r '$script' ]]; then './$script' \"\$@\"; fi" 24 25 if [[ ! -r "$path" ]]; then 26 echo "Creating $path" >&2 27 echo "#!/bin/bash -e" > "$path" 28 echo "$stmt" >> "$path" 29 chmod +x "$path" 30 elif ! grep -q "$script" "$path"; then 31 echo "Appending $script to $path" >&2 32 echo "$stmt" >> "$path" 33 else 34 echo "$path already contains reference to $script" >&2 35 fi 36 } 37 38 setup_hook commit-msg 39 pre-commit install "$@" -t pre-commit 40 pre-commit install "$@" -t pre-push