#!/usr/bin/env ruby $:.unshift(File.dirname(__FILE__) + "/../lib") require "poolparty" require 'git-style-binary/command' GitStyleBinary.primary do # self.class.send :include, Printing @theme = :short version "PoolParty release: #{PoolParty.version}" banner <<-EOS Usage: #{$0} #{all_options_string} COMMAND [ARGS] The cloud subcommands commands are: \#{GitStyleBinary.pretty_known_subcommands(:short).join(" ")} See 'cloud help COMMAND' for more information on a specific command. EOS opt :clouds_dot_rb, "Set the clouds.rb file", :type => String, :default => "clouds.rb" opt :very_verbose, "Set very verbose mode on", :type => :boolean, :default => false opt :debug, "Debug the output", :type => :boolean, :default => false opt :very_debug, "Set very debug mode on", :type => :boolean, :default => false opt :name, "Name of the working cloud", :type => String, :default => nil before_run do |command| # Setup testing/debugging $PP_VERBOSE = true if command[:verbose] $VERY_VERBOSE = true if command[:very_verbose] $DEBUGGING = true if command[:debug] $VERY_DEBUGGING = true if command[:very_debug] begin require command[:clouds_dot_rb] rescue LoadError => e puts "Failed loading #{command[:clouds_dot_rb]}, try using -c to specify the location of your clouds.rb" exit end @loaded_pool = pool @loaded_clouds = command[:name] ? [pool.clouds[command[:name]]] : pool.clouds.map {|name,cld|cld} if @loaded_clouds.count == 0 puts "No clouds loaded. Check your clouds.rb or -n option" exit end end run do |command| subcommands = GitStyleBinary.list_subcommands puts "Usage: cloud COMMAND [ARGS] The cloud subcommands commands are: #{subcommands} See 'cloud help COMMAND' for more information on a specific command" end end