Jadi saya telah mengerjakan ini. itu jahitan untuk bekerja dengan baik. Namun, Anda memerlukan pemformat untuk benar-benar memanfaatkan kode tersebut.
Jika Anda tidak ingin menggunakan pemformat, cukup setel level log ke mode debug. Semas ini untuk h
SSHKit.config.output_verbosity = Logger::DEBUG
Barang Topi
namespace :invoke do
desc 'Run a bash task on a remote server. cap environment invoke:bash[\'ls -la\'] '
task :bash, :execute do |_task, args|
on roles(:app), in: :sequence do
SSHKit.config.format = :supersimple
execute args[:execute]
end
end
desc 'Run a rake task on a remote server. cap environment invoke:rake[\'db:migrate\'] '
task :rake, :task do |_task, args|
on primary :app do
within current_path do
with rails_env: fetch(:rails_env) do
SSHKit.config.format = :supersimple
rake args[:task]
end
end
end
end
end
Ini adalah pemformat yang saya buat untuk bekerja dengan kode di atas. Ini didasarkan pada: teks sederhana yang dibangun ke dalam sshkit tetapi itu bukan cara yang buruk untuk menjalankan tugas khusus. Oh ini banyak yang tidak berfungsi dengan versi terbaru dari permata sshkit. Saya tahu ini berfungsi dengan 1.7.1. Saya mengatakan ini karena cabang master telah mengubah metode SSHKit :: Command yang tersedia.
module SSHKit
module Formatter
class SuperSimple < SSHKit::Formatter::Abstract
def write(obj)
case obj
when SSHKit::Command then write_command(obj)
when SSHKit::LogMessage then write_log_message(obj)
end
end
alias :<< :write
private
def write_command(command)
unless command.started? && SSHKit.config.output_verbosity == Logger::DEBUG
original_output << "Running #{String(command)} #{command.host.user ? "as #{command.host.user}@" : "on "}#{command.host}\n"
if SSHKit.config.output_verbosity == Logger::DEBUG
original_output << "Command: #{command.to_command}" + "\n"
end
end
unless command.stdout.empty?
command.stdout.lines.each do |line|
original_output << line
original_output << "\n" unless line[-1] == "\n"
end
end
unless command.stderr.empty?
command.stderr.lines.each do |line|
original_output << line
original_output << "\n" unless line[-1] == "\n"
end
end
end
def write_log_message(log_message)
original_output << log_message.to_s + "\n"
end
end
end
end
#{rake}
variabel capistrano sendiri ? Sepertinya itu tidak selalu merupakan pilihan terbaik.