Меня постоянно раздражает досадная ошибка, которая возникает, когда разработчики Windows проверяют кулинарные книги из моего репозитория Git с autocrlf
Git, установленным на true
. . Когда они запускают vagrant up
для запуска виртуальной машины Linux, файлы поваренной книги сопоставляются с виртуальной машиной с окончаниями строк CRLF, что приводит к бесконечным неясным ошибкам, когда оболочка и другие утилиты POSIX пытаются работать на виртуальной машине. (теперь недействительные) файлы шаблонов, которые были скопированы на виртуальную машину.
Исправить это достаточно просто: повторно клонируйте репозиторий после изменения параметра autocrlf
на input
или false
.
Моя проблема в том, что когда у вас неправильные окончания строк, единственными симптомами являются ошибки в странных местах, которые никоим образом не указывают на наличие проблемы с окончаниями строк.
Как сделать так, чтобы Chef† проверял неправильные окончания строк, скажем, в файлах шаблонов поваренной книги и выдавал ошибку, если находил их? Я думаю, простой фрагмент Ruby, который проверяет окончания строк в данном файле, который я могу поместить в начало рецепта, будет работать.
Примечание: в конкретном случае моего репо последовательность шагов такова:
- Разработчик проверяет репозиторий
- Разработчик запускает
vagrant up
- Vagrant запускает запуск Chef в виртуальной машине
- Наконец, скрипт сборки репо запускается на виртуальной машине.
† Или что-нибудь еще, включенное в репозиторий.