Sha256: 1896774a4c91a035e78c1874c1f1929841cf5e17113b9030a512b119a5e42952

Contents?: true

Size: 1.96 KB

Versions: 3

Compression:

Stored size: 1.96 KB

Contents

namespace :load do
  task :defaults do
    set :puma_monit_conf_dir, -> { "/etc/monit/conf.d/#{puma_monit_service_name}.conf" }
    set :puma_monit_use_sudo, true
    set :puma_monit_bin, '/usr/bin/monit'
  end
end

namespace :puma do
  namespace :monit do
    desc 'Config Puma monit-service'
    task :config do
      on roles(fetch(:puma_role)) do |role|
        @role = role
        template_puma 'puma_monit.conf', "#{fetch(:tmp_dir)}/monit.conf", @role
        sudo_if_needed "mv #{fetch(:tmp_dir)}/monit.conf #{fetch(:puma_monit_conf_dir)}"
        sudo_if_needed "#{fetch(:puma_monit_bin)} reload"
      end
    end

    desc 'Monitor Puma monit-service'
    task :monitor do
      on roles(fetch(:puma_role)) do
        sudo_if_needed "#{fetch(:puma_monit_bin)} monitor #{puma_monit_service_name}"
      end
    end

    desc 'Unmonitor Puma monit-service'
    task :unmonitor do
      on roles(fetch(:puma_role)) do
        sudo_if_needed "#{fetch(:puma_monit_bin)} unmonitor #{puma_monit_service_name}"
      end
    end

    desc 'Start Puma monit-service'
    task :start do
      on roles(fetch(:puma_role)) do
        sudo_if_needed "#{fetch(:puma_monit_bin)} start #{puma_monit_service_name}"
      end
    end

    desc 'Stop Puma monit-service'
    task :stop do
      on roles(fetch(:puma_role)) do
        sudo_if_needed "#{fetch(:puma_monit_bin)}  stop #{puma_monit_service_name}"
      end
    end

    desc 'Restart Puma monit-service'
    task :restart do
      on roles(fetch(:puma_role)) do
        sudo_if_needed "#{fetch(:puma_monit_bin)} restart #{puma_monit_service_name}"
      end
    end

    before 'deploy:updating', 'puma:monit:unmonitor'
    after 'deploy:published', 'puma:monit:monitor'

    def puma_monit_service_name
      fetch(:puma_monit_service_name, "puma_#{fetch(:application)}_#{fetch(:stage)}")
    end

    def sudo_if_needed(command)
      if fetch(:puma_monit_use_sudo)
        sudo command
      else
        execute command
      end
    end

  end
end

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
capistrano-puma-a-2.0.0 lib/capistrano/tasks/monit.rake
capistrano3-puma-1.2.1 lib/capistrano/tasks/monit.rake
capistrano3-puma-1.2.0 lib/capistrano/tasks/monit.rake