Команда 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'
Другие вопросы по тегам