Когда задача rake вызывается через рюкзаки, ее вывод подавляется:
task :two do
puts 'two'
end
task :one do
puts 'one'
`rake two`
end
-bash> bundle exec rake one
one
Принимая во внимание, что вывод отображается при вызове через .invoke
:
task :one do
puts 'one'
Rake::Task['two'].invoke
end
-bash> bundle exec rake one
one
two
Почему вывод подавляется обратными кавычками и как его можно отобразить?
Вышеприведенный пример является надуманным, но в конечном итоге я хочу иметь возможность запускать локальную задачу rake, которая сама запускает удаленную задачу rake, на Heroku, и я хочу видеть ее результат в реальном времени (потому что удаленная задача является интерактивной, т. е. задает вопросы через puts
и ожидает пользовательского/стандартного ввода через $stdin.gets.chomp
):
task :one do
puts 'one'
`heroku run rake my_app:reset_user_passwords --app #{MY_APP_NAME}`
end