我希望能够从SSHKit调用的rake任务输出信息,但我看不到怎么做。
说我有以下rake任务:
require 'sshkit/dsl'
task :hello => :environment do
puts "Hello world"
end
task :sshkit_hello => :environment do
run_locally do
rake "hello"
end
end
如果我自己运行:hello任务,我会看到“hello world”语句。但是,从sshkit任务调用它,我只获取SSHKit信息。如何从SSHKit调用时出现的第一个rake任务中写出信息?
rake hello
=> Hello world
rake sshkit_hello
=> INFO [f0857f14] Running /usr/bin/env rake hello on
=> INFO [f0857f14] Finished in 6.107 seconds with exit status 0 (successful).
EDIT1:
我发现你可以添加以下内容来获得基本的终端输出:
SSHKit.config.output = $stdout
但是,再次输出的信息是相同的 - 它告诉你它正在运行'rake hello'而不是'rake hello'的输出。
rake sshkit_hello
=> rake hello
答案 0 :(得分:4)
解决!
我真正需要做的是将output_verbosity更改为:debug,以便在第二个rake任务中显示puts语句:
SSHKit.config.output_verbosity = :debug
rake sshkit_hello
=> INFO [6dd1bbf7] Running bundle exec rake hello on
=> DEBUG [6dd1bbf7] Command: bundle exec rake hello
=> DEBUG [6dd1bbf7] Hello World!
=> INFO [6dd1bbf7] Finished in 6.596 seconds with exit status 0 (successful).