Как я могу запустить рейк с --trace в пределах capistrano? - PullRequest
8 голосов
/ 16 августа 2011

Я хочу, чтобы capistrano вызывал рейк с помощью --trace, чтобы я мог понять, почему он не работает. Как мне это сделать? set :rake 'rake --trace' не работает.

Ответы [ 2 ]

15 голосов
/ 20 октября 2011

Лучший способ, который я нашел, это:

set :rake, "#{rake} --trace"

Таким образом, вы не перезаписываете переменную rake .

Например, если вы используете bundler , для этого установлено:

"bundle exec rake"

и после:

"bundle exec rake --trace"

1 голос
/ 16 августа 2011

Скорее всего, ваши пользовательские задачи не используют переменные rake, а вместо этого жестко кодируют грабли, вот пример:

run("rake sass:compile")

Это жестко запрограммировано, и вас не волнует ваша настройка set :rake, 'rake --trace', вот правильный путь:

run("#{fetch(:rake)} sass:compile")

Или сокращенно:

run("#{rake} sass:compile")

Это можно увидеть на практике в исходном коде Capistrano, в одном месте, которое рецепты по умолчанию фактически вызывают rake, в задаче миграции: https://github.com/capistrano/capistrano/blob/master/lib/capistrano/recipes/deploy.rb#L387

...