Я пытаюсь написать хук, который блокирует коммит, если у него есть определенная строка.Я получил это, работая со следующим кодом.
#!/bin/sh
REPOS="$1"
TXN="$2"
COMPARE=`$SVNLOOK diff -t "$TXN" "$REPOS"`
if echo ${COMPARE} | grep -qw "path/to/file/*"; then
if echo ${COMPARE} | egrep "string1"; then
echo "file contains invalid string string1. Unable to commit " 1>&2
exit 1
fi
if echo ${COMPARE} | egrep "string2"; then
echo "file contains invalid string string2. Unable to commit " 1>&2
exit 1
fi
if echo ${COMPARE} | egrep "string3"; then
echo "file contains invalid string string3. Unable to commit" 1>&2
exit 1
fi
fi
Теперь я пытаюсь исключить файлы, заканчивающиеся на «_man.txt».Я знаю, что вы должны использовать --exclude = * {_ man.txt}, но он не игнорирует файлы и все еще показывает сообщение об ошибке подтверждения, которое я настроил.Кто-нибудь может увидеть, чего мне не хватает и почему?
if echo ${COMPARE} | grep -qw --exclude=\*{_man.txt} "path/to/file/*"; then
if echo ${COMPARE} | egrep "string1"; then
echo "file contains invalid string string1. Unable to commit " 1>&2
exit 1
fi
if echo ${COMPARE} | egrep "string2"; then
echo "file contains invalid string string2. Unable to commit " 1>&2
exit 1
fi
if echo ${COMPARE} | egrep "string3"; then
echo "file contains invalid string string3. Unable to commit" 1>&2
exit 1
fi
fi