Я использую craken для запуска процессов cron на моем экземпляре машины aws. Я определил следующие пользовательские задачи в Capistrano:
namespace :craken do
desc "Install raketab"
task :install, :roles => :cron do
set :rails_env, "production" unless exists?(:rails_env)
set :env_args, (exists?(:env_args) ? env_args : "app_name=#{application} deploy_path=#{current_path}")
run "cd #{current_path} && rake #{env_args} RAILS_ENV=#{rails_env} craken:install"
end
task :uninstall, :roles => :cron do
set :rails_env, "production" unless exists?(:rails_env)
set :env_args, (exists?(:env_args) ? env_args : "app_name=#{application} deploy_path=#{current_path}")
run "cd #{current_path} && rake #{env_args} RAILS_ENV=#{rails_env} craken:uninstall"
end
end
before "deploy:symlink", "craken:uninstall"
after "deploy:symlink", "craken:install"
Проблема в том, что перед "deploy: symlink", "craken: uninstall" происходит сбой установки deploy: cold при первом запуске, поскольку raketab craken еще не установлен. Как я могу настроить это для запуска, только если это развертывание, а не развертывание: cold? Есть ли переменная окружения, которую я могу проверить?
Спасибо!