Sha256: aba9fbde60067b8a26fe1e804cad22966c195110c71a1650b9764641d1543735

Contents?: true

Size: 1.59 KB

Versions: 11

Compression:

Stored size: 1.59 KB

Contents

#!/usr/bin/env ruby -W0
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

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 :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?

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

11 entries across 11 versions & 1 rubygems

Version Path
onering-client-0.0.73 bin/onering
onering-client-0.0.72 bin/onering
onering-client-0.0.71 bin/onering
onering-client-0.0.70 bin/onering
onering-client-0.0.69 bin/onering
onering-client-0.0.68 bin/onering
onering-client-0.0.67 bin/onering
onering-client-0.0.66 bin/onering
onering-client-0.0.65 bin/onering
onering-client-0.0.64 bin/onering
onering-client-0.0.63 bin/onering