Sha256: c1394a816c0b62e7868edbde98a266eb1d8e30d86466c48a20eda4af51754e37

Contents?: true

Size: 1.4 KB

Versions: 24

Compression:

Stored size: 1.4 KB

Contents

require 'pathname'
require 'yaml'

module Ufo
  module Core
    def check_task_definition!(task_definition)
      task_definition_path = "#{Ufo.root}/.ufo/output/#{task_definition}.json"
      unless File.exist?(task_definition_path)
        puts "ERROR: Unable to find the task definition at #{task_definition_path}.".colorize(:red)
        puts "Are you sure you have defined it in ufo/template_definitions.rb and it has been generated correctly in .ufo/output?".colorize(:red)
        puts "If you are calling `ufo deploy` directly, you might want to generate the task definition first with `ufo tasks build`."
        exit
      end
    end

    def root
      path = ENV['UFO_ROOT'] || '.'
      Pathname.new(path)
    end

    @@env = nil
    def env
      return @@env if @@env
      ufo_env = env_from_profile(ENV['AWS_PROFILE']) || 'development'
      ufo_env = ENV['UFO_ENV'] if ENV['UFO_ENV'] # highest precedence
      @@env = ufo_env
    end

    private
    # Do not use the Setting class to load the profile because it can cause an
    # infinite loop then if we decide to use Ufo.env from within settings class.
    def env_from_profile(aws_profile)
      data = YAML.load_file("#{Ufo.root}/.ufo/settings.yml")
      env = data.find do |_env, setting|
        setting ||= {}
        profiles = setting['aws_profiles']
        profiles && profiles.include?(aws_profile)
      end
      env.first if env
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
ufo-3.5.7 lib/ufo/core.rb
ufo-3.5.6 lib/ufo/core.rb
ufo-3.5.5 lib/ufo/core.rb
ufo-3.5.4 lib/ufo/core.rb
ufo-3.5.3 lib/ufo/core.rb
ufo-3.5.2 lib/ufo/core.rb
ufo-3.5.1 lib/ufo/core.rb
ufo-3.5.0 lib/ufo/core.rb
ufo-3.4.4 lib/ufo/core.rb
ufo-3.4.3 lib/ufo/core.rb
ufo-3.4.2 lib/ufo/core.rb
ufo-3.4.1 lib/ufo/core.rb
ufo-3.4.0 lib/ufo/core.rb
ufo-3.3.2 lib/ufo/core.rb
ufo-3.3.1 lib/ufo/core.rb
ufo-3.3.0 lib/ufo/core.rb
ufo-3.2.2 lib/ufo/core.rb
ufo-3.2.1 lib/ufo/core.rb
ufo-3.2.0 lib/ufo/core.rb
ufo-3.1.2 lib/ufo/core.rb