Class: GlobalErrorHandler::Capistrano

Inherits:
Object
  • Object
show all
Defined in:
lib/recipes/global_error_handler.rb

Class Method Summary collapse

Class Method Details

.load_into(config) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/recipes/global_error_handler.rb', line 3

def self.load_into(config)
  config.load do
    namespace :global_error_handler do
      desc 'Subscribe to expiration'
      task :subscribe do
        run %Q{cd #{current_path} && RAILS_ENV=#{rails_env} nohup rake global_error_handler:cleanup_database_dependencies >/dev/null 2>&1 & sleep 2}
        run %Q{cd #{current_path} && RAILS_ENV=#{rails_env} nohup rake global_error_handler:subscribe_to_expired >/dev/null 2>&1 & sleep 3}
      end

      desc 'Unsubscribe from expiration'
      task :unsubscribe do
        run %Q{cd #{current_path} && RAILS_ENV=#{rails_env} #{rake} global_error_handler:unsubscribe_from_expired}
      end

      desc 'Update Subscription to expiration'
      task :update_subscription do
        unsubscribe
        subscribe
      end

      namespace :initd do
        desc 'Generate geh_subscription init.d script'
        task :setup, roles: :app do
          run "mkdir -p #{shared_path}/config"
          location = File.expand_path('../../../config/templates/geh_subscription_init.sh.erb', __FILE__)
          config = ERB.new(File.read(location))
          put config.result(binding), "#{shared_path}/config/#{application}_geh_subscription_init.sh"
        end

        desc 'Copy geh_subscription into an init.d and adds to chkconfig'
        task :install, roles: :app do
          sudo "cp #{shared_path}/config/#{application}_geh_subscription_init.sh /etc/init.d/#{application}_geh_subscription;\
            sudo chmod +x /etc/init.d/#{application}_geh_subscription;\
            sudo chkconfig --add #{application}_geh_subscription", pty: true
        end

        desc 'Removes geh_subscription from an init.d and deletes from chkconfig'
        task :uninstall, roles: :app do
          sudo "chkconfig --del #{application}_geh_subscription;\
            sudo rm -f /etc/init.d/#{application}_geh_subscription", pty: true
        end
      end
    end
  end
end