Sha256: 1079e5973aedaca5954b94b2df57eb01ecd5252566678f957474c88b9e03cd52

Contents?: true

Size: 1.11 KB

Versions: 17

Compression:

Stored size: 1.11 KB

Contents

module Kite::Helpers
  # Check config/cloud.yml file to be complete
  def check_cloud_config(config)
    raise Kite::Error, 'The config/cloud.yml is not filled out!' unless config.find { |key, hash| hash.find { |k, v| v.nil? } }.nil?
  end

  def cloud_valid?(path)
    valid = Dir.children(path).include? 'config'
    valid &&= Dir.children(path + '/config').include? 'cloud.yml'

    valid
  end

  def cloud_path
    Dir.pwd.tap do |path|
      until cloud_valid? path
        raise Kite::Error, "Invalid path: \"#{Dir.pwd}\"" if path == "/"
        path = File.dirname(path)
      end
    end
  end

  # Parse config/cloud.yml, returning the output hash
  def parse_cloud_config(env = nil)
    cloud_config = YAML.load(File.read('config/cloud.yml'))
    check_cloud_config(cloud_config)

    if env
      unless cloud_config[env]
        fail "Environement `#{env}` missing in config/cloud.yml"
      end
      return cloud_config[env]
    end
    return cloud_config
  end

  def run!(command, config = {})
    run(command)

    if $?.exitstatus != 0
      raise Thor::Error.new("command failed: #{ command }")
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
kite-1.2.3 lib/kite/helpers.rb
kite-1.2.2 lib/kite/helpers.rb
kite-1.2.1 lib/kite/helpers.rb
kite-1.2.0 lib/kite/helpers.rb
kite-1.1.17 lib/kite/helpers.rb
kite-1.1.16 lib/kite/helpers.rb
kite-1.1.15 lib/kite/helpers.rb
kite-1.1.14 lib/kite/helpers.rb
kite-1.1.13 lib/kite/helpers.rb
kite-1.1.12 lib/kite/helpers.rb
kite-1.1.11 lib/kite/helpers.rb
kite-1.1.10 lib/kite/helpers.rb
kite-1.1.9 lib/kite/helpers.rb
kite-1.1.8 lib/kite/helpers.rb
kite-1.1.7 lib/kite/helpers.rb
kite-1.1.3 lib/kite/helpers.rb
kite-1.1.1 lib/kite/helpers.rb