Sha256: 394289b247f69b94a165786f7af394156906255fc885852a0729da86086e694f

Contents?: true

Size: 1.16 KB

Versions: 4

Compression:

Stored size: 1.16 KB

Contents

module Brightbox
  desc "Manages local configuration settings and credentials"
  command [:config] do |cmd|

    cmd.desc "Add new api client details to config"
    cmd.arg_name "client-id secret [api_url, auth_url]"
    cmd.command [:client_add] do |c|

      c.desc "client alias (local reference)"
      c.flag [:a, "alias"]

      c.desc "auth url"
      c.flag [:t, "auth-url"]

      c.action do |global_options, options, args|

        info "Using config file #{$config.config_filename}"

        client_id = args.shift
        secret = args.shift
        api_url = args.shift || DEFAULT_API_ENDPOINT
        auth_url = args.shift || api_url

        calias = options[:a] || client_id

        if client_id.nil?
          raise "You must specify the client-id"
        end

        unless client_id[/^cli-.{5}$/]
          raise "The client-id '#{client_id}' must match the format cli-xxxxx"
        end

        if secret.nil?
          raise "You must specify the client secret"
        end

        options = {
          :api_url => api_url,
          :auth_url => auth_url
        }
        $config.add_section(calias, client_id, secret, options)
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
brightbox-cli-1.1.0 lib/brightbox-cli/commands/config-client-add.rb
brightbox-cli-1.0.0 lib/brightbox-cli/commands/config-client-add.rb
brightbox-cli-1.0.0.rc2 lib/brightbox-cli/commands/config-client-add.rb
brightbox-cli-1.0.0.rc1 lib/brightbox-cli/commands/config-client-add.rb