#!/usr/bin/env ruby
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)

require 'yaml'
require 'ostruct'
require 'bosh/cpi'
require 'cloud/aws'

cpi_config = YAML.load_file(ARGV.shift)
cloud_config = OpenStruct.new(:logger => Bosh::Cpi::Logger.new(STDERR))

Bosh::Clouds::Config.configure(cloud_config)

cpi_log = StringIO.new # Empty on AWS

cpi_lambda = lambda do |context, cpi_api_version|
  unless cpi_config.has_key?('cloud') && cpi_config['cloud'].has_key?('properties')
    raise "Could not find cloud properties in the configuration"
  end
  cloud_properties = cpi_config['cloud']['properties']

  cloud_properties['aws'].merge!(context)
  Bosh::Clouds::Aws.new.create_cloud(cpi_api_version, cloud_properties)
end

cli = Bosh::Cpi::Cli.new(cpi_lambda, cpi_log, STDOUT)

cli.run(ARGF.read)
