Sha256: 6a0a6b341c80f5f13dde6937f786917c16f55e4d4b6735ec5ef6a93e85a7a66e

Contents?: true

Size: 1.17 KB

Versions: 3

Compression:

Stored size: 1.17 KB

Contents

require_relative './base_manager'
module CapistranoMulticonfigParallel
  # class used to find application dependencies
  class SingleAppManager < CapistranoMulticonfigParallel::BaseManager
    include Celluloid
    include Celluloid::Logger

    def run
      options = {}
      if custom_command?
        run_custom_command(options)
      else
        deploy_single_app(options)
      end
      process_jobs
    end

    def run_custom_command(options)
      return unless custom_command?
      action_name = @name
      if action_name == custom_commands[:stages]
        stage_deploy(options)
      else
        raise "Custom command #{@name} not available for single apps"
      end
    end

    def stage_deploy(options)
       return unless custom_command?
      stages = fetch_multi_stages
      return if  stages.blank?
      collect_jobs(options) do |new_options|
        stages.each do |stage|
          deploy_app(new_options.merge('stage' => stage, 'action' => 'deploy'))
        end
      end
    end
    
    
    def deploy_single_app(options)
      return if custom_command?
      collect_jobs(options) do |new_options|
        deploy_app(new_options) 
      end
    end
    
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
capistrano_multiconfig_parallel-0.0.3 lib/capistrano_multiconfig_parallel/helpers/single_app_manager.rb
capistrano_multiconfig_parallel-0.0.2 lib/capistrano_multiconfig_parallel/helpers/single_app_manager.rb
capistrano_multiconfig_parallel-0.0.1 lib/capistrano_multiconfig_parallel/helpers/single_app_manager.rb