Skip to content

Instantly share code, notes, and snippets.

@masone
Last active August 29, 2015 14:10
Show Gist options
  • Save masone/0e3dafb13a2ffc1d4a08 to your computer and use it in GitHub Desktop.
Save masone/0e3dafb13a2ffc1d4a08 to your computer and use it in GitHub Desktop.
Capistrano eye task
namespace :eye do
%w(start stop restart info).each do |cmd|
task cmd.to_sym do
on roles(fetch(:eye_roles)) do |server|
within release_path do
eye_processes(server).each do |name|
execute :bundle, "exec eye #{cmd} #{name}"
end
end
end
end
end
desc "Load the configuration file"
task :load do
on roles(fetch(:eye_roles)) do |server|
within release_path do
eye_roles(server).each do |role|
execute :bundle, "exec eye load ./config/eye/#{role}.rb"
end
end
end
end
task :delete do
on roles(fetch(:eye_roles)) do |server|
within release_path do
eye_processes(server).each do |name|
execute :bundle, "exec eye delete #{name}; true"
end
end
end
end
task :quit do
on release_roles(fetch(:eye_roles)) do
within release_path do
execute :bundle, "exec eye quit"
end
end
end
before :start, :load
before :restart, :load
private
def eye_processes(server)
eye_roles(server).map { |role| "#{fetch(:rails_env)}-#{role}" }
end
def eye_roles(server)
server.roles_array
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment