mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-27 10:54:40 +00:00
00981cbdff
* autogen.sh: Install Git hooks, if using Git. * build-aux/git-hooks/commit-msg, build-aux/git-hooks/pre-commit: New files, which are Git hooks that check for portable file names, and do some simple checks for commit message format.
47 lines
1.2 KiB
Bash
Executable File
47 lines
1.2 KiB
Bash
Executable File
#!/bin/sh
|
|
# Check file names in git commits for GNU Emacs.
|
|
|
|
# Copyright 2014 Free Software Foundation, Inc.
|
|
|
|
# This file is part of GNU Emacs.
|
|
|
|
# GNU Emacs is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
|
|
# GNU Emacs is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
LC_ALL=C
|
|
export LC_ALL
|
|
|
|
exec >&2
|
|
|
|
. git-sh-setup
|
|
|
|
git_diff='git diff --cached --name-only --diff-filter=A'
|
|
ok_chars='\0+[=-=]./0-9A-Z_a-z'
|
|
nbadchars=`$git_diff -z HEAD | tr -d "$ok_chars" | wc -c`
|
|
|
|
if test "$nbadchars" -ne 0; then
|
|
echo "File name does not consist of -+./_ or ASCII letters or digits."
|
|
exit 1
|
|
fi
|
|
|
|
new_names=`$git_diff HEAD` || exit
|
|
case "
|
|
$new_names" in
|
|
*/-* | *'
|
|
'-*)
|
|
echo "File name component begins with '-'."
|
|
exit 1;;
|
|
esac
|
|
|
|
exec git diff-index --check --cached HEAD --
|