При вызове грабли через рюкзаки, ее вывод подавляется:
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