#!/usr/bin/env ruby
$:.push File.dirname(__FILE__) + '/../lib'

require "rubygems"

# interface assumed by aruba in-process testing
# https://github.com/cucumber/aruba#testing-ruby-cli-programs-without-spawning-a-new-ruby-process

section, *argv = ARGV.dup
cli = case (section || "").downcase.to_sym
when :provider
  require "cyoi/cli/provider"
  Cyoi::Cli::Provider.new(argv)
when :address
  require "cyoi/cli/address"
  Cyoi::Cli::Address.new(argv)
when :image
  require "cyoi/cli/image"
  Cyoi::Cli::Image.new(argv)
when :blobstore
  require "cyoi/cli/blobstore"
  Cyoi::Cli::Blobstore.new(argv)
when :keypair, :key_pair
  require "cyoi/cli/key_pair"
  Cyoi::Cli::KeyPair.new(argv)
else
  $stderr.puts "USAGE: cyoi [provider|address|image|blobstore|key_pair]"
  exit 1
end

# TODO put this behind a flag --fog-mock
require "fog"
Fog.mock!

cli.show_settings
cli.execute!
