Files
igl/scripts/pre-commit.sh
T
2016-02-05 09:20:16 -05:00

35 lines
735 B
Bash
Executable File

#!/bin/sh
#
# To enable this hook, issue:
#
# ln -s scripts/pre-commit.sh .git/hooks/pre-commit
#
RED='\033[0;31m'
NC='\033[0m'
## Throw error if any files contain "std::__1"
# list of changed files
CHANGED=$(git diff --cached --name-only --diff-filter=ACM)
# Ignore this file!
CHANGED=$(echo "$CHANGED" | grep -v "scripts/pre-commit.sh")
# Changed files containing the namespace "std::__1"
STD1=$(grep -Il "std::__1" $CHANGED)
if [ $? -eq 0 ]; then
STD1=$(echo "$STD1" | sed -e "s/^/ /")
>&2 echo "[pre-commit hook] Error: Commit prohibited.
The following files contain the offensive \"std::__1\" namespace:
${RED}$STD1${NC}
Consider issueing:
sed -i '' -e \"s/std::__1/std/g\"" $STD1
exit 1
else
exit 0
fi