команда capistrano тихо терпит неудачу без какой-либо обратной связи

Я пытаюсь создать задачу capistrano для настройки файла ротации журнала.

namespace :app do
  task :setup_log_rotation,:roles => :app do
    rotate_script = %Q{#{shared_path}/log/#{stage}.log {
      daily
      rotate #{ENV['days'] || 7}
      size #{ENV['size'] || "5M"}
      compress
      create 640 #{user} #{ENV['group'] || user}
      missingok
    }}

    put rotate_script, "#{shared_path}/logrotate_script"

    "sudo cp #{shared_path}/logrotate_script /etc/logrotate.d/#{application}"

    run "rm #{shared_path}/logrotate_script"
  end
end

В самом верху моего файла deploy.rb у меня была следующая строка

set :use_sudo, false

Я совершенно упустил из виду, что моя команда cp молча терпела неудачу, и на моем терминале я думал, что все в порядке. Это не хорошо. Как мне написать код cp, чтобы в случае сбоя cp по какой-либо причине (в этом случае команда sudo не выполнялась), я должен получить отзыв на свой терминал.


person Roger    schedule 06.01.2010    source источник


Ответы (1)


Решил свою проблему.

Посмотрите это для что-то похожее.

Я добавляю эту строчку в deploy.rb

default_run_options[:pty] = true

И изменилось с

run "sudo cp #{shared_path}/logrotate_script /etc/logrotate.d/#{application}"

к этому

sudo "cp #{shared_path}/logrotate_script /etc/logrotate.d/#{application}"
person Roger    schedule 07.01.2010