#!/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