Sha256: 50b7e054618ac0d0a58a9827541fa47c2bfa3ccd4f67f83f7644ef48a2c6e7f1

Contents?: true

Size: 1.24 KB

Versions: 12

Compression:

Stored size: 1.24 KB

Contents

class Indocker::CrontabRedeployRulesBuilder
  CRONTAB = <<~CRONTAB
    SHELL=/bin/bash
    PATH=/usr/local/bundle/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

    %{rules}
  CRONTAB

  LOG_FILE      = "/var/log/indocker-redeploy-%{env}.log"
  COMMAND       = "export TERM=xterm;%{deploy_dir}/indocker/bin/deploy -C %{env} -f -B -y -c %{container_name}"
  REDEPLOY_RULE = %Q{%{schedule} echo `date` "- %{command}..." >> %{log_file}; %{command} 1>/dev/null 2>>%{log_file}; echo `date` "- done, exitcode = $?" >> %{log_file}}

  def initialize(configuration:, logger:)
    @configuration  = configuration
    @logger         = logger
  end

  def call(containers)
    CRONTAB % {
      rules: containers.map{ |c| redeploy_rule(c) }.join("\n"),
    }
  end

  private
  def self.env
    Indocker.configuration_name
  end

  def env
    self.class.env
  end

  def log_file
    LOG_FILE % {
      env: env,
    }
  end

  def command(container)
    COMMAND % {
      env:            env,
      container_name: container.name,
      deploy_dir: Indocker.deploy_dir
    }
  end

  def redeploy_rule(container)
    REDEPLOY_RULE % {
      schedule:   container.redeploy_schedule,
      command:    command(container),
      log_file:   log_file,
    }
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
indocker-0.3.9 lib/indocker/crontab_redeploy_rules_builder.rb
indocker-0.3.8 lib/indocker/crontab_redeploy_rules_builder.rb
indocker-0.3.7 lib/indocker/crontab_redeploy_rules_builder.rb
indocker-0.3.6 lib/indocker/crontab_redeploy_rules_builder.rb
indocker-0.3.5 lib/indocker/crontab_redeploy_rules_builder.rb
indocker-0.3.4 lib/indocker/crontab_redeploy_rules_builder.rb
indocker-0.3.3 lib/indocker/crontab_redeploy_rules_builder.rb
indocker-0.3.2 lib/indocker/crontab_redeploy_rules_builder.rb
indocker-0.1.18 lib/indocker/crontab_redeploy_rules_builder.rb
indocker-0.3.1 lib/indocker/crontab_redeploy_rules_builder.rb
indocker-0.3.0 lib/indocker/crontab_redeploy_rules_builder.rb
indocker-0.1.17 lib/indocker/crontab_redeploy_rules_builder.rb