#!/usr/bin/env ruby

# Copyright (c) 2009-2012 VMware, Inc.

# Usage example:
# irb(main):001:0> cpi.create_vm("test", "ami-809a48e9",
#                  {"instance_type" => "m1.small"}, {}, [], {"foo" =>"bar"})
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)

require "bosh_aws_cpi"
require "irb"
require "irb/completion"
require "ostruct"
require "optparse"

config_file = nil

opts_parser = OptionParser.new do |opts|
  opts.on("-c", "--config FILE") { |file| config_file = file }
end

opts_parser.parse!

unless config_file
  puts opts_parser
  exit(1)
end

@config = Psych.load_file(config_file)

module ConsoleHelpers
  def cpi
    @cpi ||= Bosh::AwsCloud::Cloud.new(@config)
  end

  def ec2
    cpi.ec2_client
  end

  def registry
    cpi.registry
  end
end

cloud_config = OpenStruct.new(:logger => Bosh::Cpi::Logger.new(STDOUT))

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

include ConsoleHelpers

begin
  require "ruby-debug"
  puts "=> Debugger enabled"
rescue LoadError
  puts "=> ruby-debug not found, debugger disabled"
end

puts "=> Welcome to BOSH AWS CPI console"
puts "You can use 'cpi' to access CPI methods"

IRB.start
