Sha256: 67b5fb1a78ad0cc90bfe6f2e1e1069394cfb4a0be2165092638e024e96865d2a

Contents?: true

Size: 1.82 KB

Versions: 6

Compression:

Stored size: 1.82 KB

Contents

#!/usr/bin/env ruby
require 'trollop'
require 'onering'
require 'hashlib'
require 'rainbow'
require 'pp'

plugins = Onering::CLI.submodules.collect{|i| i.name.split('::').last.downcase }
global = Trollop::options do
  banner <<-EOS
onering command line client utility - version #{Onering::CLI::VERSION}

Usage:
    onering [global] [plugin] [subcommand] [options]

where [global] options are:
EOS

  opt :url,       "The URL of the Onering server to connect to", :short => '-s', :type => :string
  opt :path,      "The base path to prepend to all requests (default: /api)", :type => :string
  opt :source,    "Specify the source IP address to use (i.e. which network interface the request should originate from)", :short => '-I', :type => :string
  opt :param,     "Additional query string parameters to include with the request in the format FIELD=VALUE. Can be specified multiple times.", :short => '-p', :type => :string, :multi => true
  opt :format,    "The output format for return values (i.e.: json, yaml, text)", :default => 'text', :short => '-t', :type => :string
  opt :sslkey,    "Location of the SSL client key to use for authentication", :short => '-c', :type => :string
  opt :apikey,    "The API token to use for authentication", :short => '-k', :type => :string
  opt :quiet,     "Suppress standard output", :short => '-q'

  stop_on plugins
end


plugin = ARGV.shift
Trollop::die("plugin argument is requried") if plugin.nil?

Onering::Config.load()

if plugins.include?(plugin)
  begin
    plugin = Onering::CLI.const_get(plugin.capitalize)
    plugin.configure(global)
    rv = plugin.run(ARGV)
    Onering::CLI.output(rv, global[:format])
  rescue Onering::API::Errors::Exception => e
    STDERR.puts("[#{e.class.name.split('::').last}]".foreground(:red) + " #{e.message}")
    exit 1
  end
else
  Trollop::die("unknown plugin #{plugin}")
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
onering-client-0.0.83 bin/onering
onering-client-0.0.82 bin/onering
onering-client-0.0.81 bin/onering
onering-client-0.0.80 bin/onering
onering-client-0.0.79 bin/onering
onering-client-0.0.78 bin/onering