Нет такой ошибки файла или каталога при фиксации хука - PullRequest
0 голосов
/ 06 октября 2018

Это мой pre-commit хук

#!/bin/sh

echo "pre-commit started"

filename="$1"
lineno=0

error() {
    echo "$1"
    exit 1
}

while read -r line
do
    [[ "$line" =~ ^#.* ]] && continue

    let lineno+=1
    length=${#line}

    if [[ $lineno -eq 1 ]]; then
        [[ $length -gt 50 ]] && error "Limit the subject line to 50 characters"
        [[ ! "$line" =~ ^[A-Z].*$ ]] && error "Capitalise the subject line"
        [[ "$line" == *. ]] && error "Do not end the subject line with a period"
    fi

    [[ $lineno -eq 2 ]] && [[ -n $line ]] && error "Separate subject from body with a blank line"
    [[ $lineno -gt 1 ]] && [[ $length -gt 72 ]] && error "Wrap the body at 72 characters"
done < "$filename"
exit 0

Я получаю эту ошибку при запуске

› git commit -m "sfrewr"
pre-commit started
/Users/me/.git-templates/hooks/pre-commit: line 28: : No such file or directory
[master 6950a43] sfrewr
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 89

И строка 28 читает

done < "$filename"

1 Ответ

0 голосов
/ 06 октября 2018

Хук Git pre-commit не принимает никаких аргументов, но ваш сценарий оболочки ожидает его.При попытке чтения из пустого имени файла вы получаете сообщение об ошибке.

Поскольку похоже, что вы пытаетесь проверить исправность сообщения о коммите (похвальная цель), вы, вероятно, захотите использовать commit-msg крюк вместо.Он может отклонить ваше сообщение и отредактировать его, если вы захотите это сделать.Вы можете увидеть немного больше о том, какие хуки делают, запустив man githooks.

...