Sha256: 37b5f1b43faaa3639fd9381143b799353779cfa2452deba7639c221e61f67bfc

Contents?: true

Size: 1.39 KB

Versions: 3

Compression:

Stored size: 1.39 KB

Contents

module EY
  class DeployConfig
    def initialize(cli_opts, env_config, repo, ui)
      @cli_opts = cli_opts
      @env_config = env_config
      @repo = repo
      @ui = ui
    end

    def ref
      @ref ||= decide_ref
    end

    def migrate
      decide_migrate
      @migrate
    end

    def migrate_command
      decide_migrate
      @migrate_command
    end

    def verbose
      @cli_opts.fetch('verbose') { in_repo? && @env_config.verbose }
    end

    def extra_config
      extras = @cli_opts.fetch('extra_deploy_hook_options', {})
      if in_repo?
        extras = @env_config.merge(extras)
      end
      extras
    end

    private

    # passing an app means we assume PWD is not the app.
    def in_repo?
      @cli_opts['app'].nil? || @cli_opts['app'] == ''
    end

    def decide_ref
      ref_decider = EY::DeployConfig::Ref.new(@cli_opts, @env_config, @repo, @ui)
      if in_repo?
        ref_decider.when_inside_repo
      else
        ref_decider.when_outside_repo
      end
    end

    def decide_migrate
      return if @migrate_decider
      @migrate_decider = EY::DeployConfig::Migrate.new(@cli_opts, @env_config, @ui)
      @migrate, @migrate_command =
        if in_repo?
          @migrate_decider.when_inside_repo
        else
          @migrate_decider.when_outside_repo
        end
    end
  end
end

require 'engineyard/deploy_config/migrate'
require 'engineyard/deploy_config/ref'

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
engineyard-2.0.0.pre2 lib/engineyard/deploy_config.rb
engineyard-2.0.0.pre1 lib/engineyard/deploy_config.rb
engineyard-1.7.0.pre2 lib/engineyard/deploy_config.rb