class Vcloud::Core::LogoutCli

Public Class Methods

new(argv_array) click to toggle source

Create a new instance of the CLI, parsing the arguments supplied

@param argv_array [Array] The Array of ARGV arguments @return [Vcloud::Core::LogoutCLI]

# File lib/vcloud/core/logout_cli.rb, line 11
def initialize(argv_array)
  @usage_text = nil

  parse(argv_array)
end

Public Instance Methods

run() click to toggle source

Logout an existing vCloud session.

@return [void]

# File lib/vcloud/core/logout_cli.rb, line 20
def run
  begin
    Vcloud::Core::Fog.logout
  rescue => e
    $stderr.puts("#{e.class}: #{e.message}")
    exit 1
  end
end

Private Instance Methods

exit_error_usage(error) click to toggle source
# File lib/vcloud/core/logout_cli.rb, line 65
def exit_error_usage(error)
  $stderr.puts "#{$0}: #{error}"
  $stderr.puts @usage_text
  exit 2
end
parse(args) click to toggle source
# File lib/vcloud/core/logout_cli.rb, line 31
      def parse(args)
        opt_parser = OptionParser.new do |opts|
          opts.banner = <<-EOS
Usage: #{$0} [options]

Utility for logging out of a vCloud session and preventing future use of the
session token. A `FOG_VCLOUD_TOKEN` environment variable, as provided by
`vcloud-login`, must be present.

          EOS

          opts.on("-h", "--help", "Print usage and exit") do
            $stderr.puts opts
            exit
          end

          opts.on("--version", "Display version and exit") do
            puts Vcloud::Core::VERSION
            exit
          end
        end

        @usage_text = opt_parser.to_s
        begin
          opt_parser.parse!(args)
        rescue OptionParser::InvalidOption => e
          exit_error_usage(e)
        end

        if args.size > 0
          exit_error_usage("too many arguments")
        end
      end