Команда Thor empty_directory вызывает "отказано в разрешении" при клонировании из репозитория в rails composer custom recipe
Сегодня я борюсь с этим:
mkdir': Permission denied @ dir_s_mkdir - /app/assets/stylesheets/material_ui (Errno::EACCES)
Я создаю свой собственный генератор композиторов рельсов. Я хочу клонировать из моего репо несколько файлов и поместить их в приложение, которое я генерирую, когда звоню rails new etc etc...
, Генератор работает хорошо (он клонирует много файлов, даже распаковывает большую папку шрифтов!), И все рецепты работают, кроме одного.
Этот содержит (среди прочих) эту строку
empty_directory '/app/assets/stylesheets/material_ui'
Это действие Тора не говорит: "Отказано в разрешении".
Конечно, я не могу ничего CHMOD раньше, потому что нет никакой папки, пока я не запускаю rails new
команда.
Как я могу создать каталог в рецепте композитора рельсов, используя Thor?
2 ответа
Я нашел решение. Это так просто, чтобы быть глупым, но, поскольку я нашел других людей, спотыкающихся от этой ошибки, я отвечу на свой вопрос в качестве документации.
Ошибка находится на пути.
empty_directory '/app/assets/stylesheets/material_ui'
это не то же самое
empty_directory 'app/assets/stylesheets/material_ui'
Второй является правильным, потому что это абсолютный путь сгенерированного приложения.
Первый, как это начинается с /
интерпретируется как подпапка точки выполнения рецепта, и, поскольку она не существует, возникает ошибка разрешения.
Возможно, каталог не существует. Помните разницу между:
empty_directory 'app/assets/stylesheets/material_ui'
empty directory '/app/assets/stylesheets/material_ui'