namespace :eye do
desc 'Load eye config' task :load do on roles(fetch(:eye_roles)) do with fetch(:eye_env) do within fetch(:eye_work_dir) do execute :eye, :load, fetch(:eye_config) end end end end [:start, :stop, :restart].each do |cmd| desc "Run 'eye #{cmd}'" task cmd do on roles(fetch(:eye_roles)) do with fetch(:eye_env) do within fetch(:eye_work_dir) do execute :eye, cmd, fetch(:eye_application) end end end end end task :info do desc 'Show application status' on roles(fetch(:eye_roles)) do |server| puts server.hostname with fetch(:eye_env) do within fetch(:eye_work_dir) do puts capture(:eye, :info, fetch(:eye_application)) end end end end task :quit do desc 'Quit eye' on roles(fetch(:eye_roles)) do |server| with fetch(:eye_env) do within(release_path) do execute :eye, :quit end end end end before :start, :load before :restart, :load
end
namespace :load do
task :defaults do set :eye_roles, :app set :eye_env, -> { { rails_env: fetch(:rails_env) || fetch(:stage) } } set :eye_application, -> { fetch(:application) } set :eye_config, -> { "./config/#{fetch(:application)}.eye" } set :eye_work_dir, -> { release_path } # Rbenv, Chruby, and RVM integration set :rbenv_map_bins, fetch(:rbenv_map_bins).to_a << 'eye' set :rvm_map_bins, fetch(:rvm_map_bins).to_a << 'eye' set :chruby_map_bins, fetch(:chruby_map_bins).to_a << 'eye' # Bundler integration set :bundle_bins, fetch(:bundle_bins).to_a << 'eye' if defined?(Eye) end
end