1
0
Fork 0
mirror of https://github.com/fog/fog.git synced 2022-11-09 13:51:43 -05:00
fog--fog/bin/fog
ggoodale 2a9224cfa7 [bbg] flesh out bbg support
Added basic spec framework; changed class names to match the template fog seems to prefer

Servers tests pass; create and delete implemented.

Added an example script

Properly handle a 409 response from the API

Fixed BBG code to work with the new api endpoint changes; tweaks to the (currently nonexistent) reboot api call

Implement the reboot command for blocks
2010-06-03 14:48:53 -07:00

50 lines
1.4 KiB
Ruby
Executable file

#!/usr/bin/env ruby
require File.join(File.dirname(__FILE__), '..', 'lib', 'fog')
require 'irb'
require 'yaml'
require File.join('fog', 'credentials')
require File.join('fog', 'bin')
Fog.credential = ARGV.first ? :"#{ARGV.first}" : :default
unless Fog.credentials
exit
end
require File.join('fog', 'aws', 'bin')
require File.join('fog', 'local', 'bin')
require File.join('fog', 'rackspace', 'bin')
require File.join('fog', 'slicehost', 'bin')
require File.join('fog', 'terremark', 'bin')
require File.join('fog', 'vcloud', 'bin')
require File.join('fog', 'bluebox', 'bin')
if ARGV.length > 1
print(instance_eval(ARGV[1..-1].join(' ')).to_json)
else
ARGV.clear # Avoid passing args to IRB
IRB.setup(nil)
@irb = IRB::Irb.new(nil)
IRB.conf[:MAIN_CONTEXT] = @irb.context
IRB.conf[:PROMPT][:FOG] = IRB.conf[:PROMPT][:SIMPLE].dup
IRB.conf[:PROMPT][:FOG][:RETURN] = "%s\n"
@irb.context.prompt_mode = :FOG
@irb.context.workspace = IRB::WorkSpace.new(binding)
services = Fog.services.map{|service| service.to_s}
available_services = if services.length > 1
services[0...-1].join(', ') << ' and ' << services[-1]
else
services.first
end
print "Welcome to fog interactive!\n"
print "Your '#{Fog.credential.to_s}' configuration provides access to #{available_services}.\n"
Fog.services.each do |service|
if service.respond_to?(:startup_notice)
service.send(:startup_notice)
end
end
catch(:IRB_EXIT) { @irb.eval_input }
end