Sha256: 44f258d7395fe0428848f9090defaee54965a735b63fa4df8e79511d78124ed5

Contents?: true

Size: 1.07 KB

Versions: 2

Compression:

Stored size: 1.07 KB

Contents

# try to avoid json/yaml/psych bug
# see https://github.com/chetan/psych_load_bug
require "yaml"

require "bixby-common"
require "bixby-auth"

require "bixby-client/script_util"
require "bixby-client/model"
require "bixby-client/modules"
require "bixby-client/command"
require "bixby-client/client"

module Bixby

  class << self

    # Set the Bixby::Client to be used
    def client=(client)
      @client = client
    end

    # Get a Bixby::Client instance
    def client
      @client ||= create_client()
    end


    private

    def create_client
      raise "BIXBY_HOME not set" if not root

      config_file = Bixby.path("etc", "bixby.yml")
      raise "#{config_file} not found" if not File.exists? config_file

      config = YAML.load_file(config_file)
      if not config.kind_of? Hash or
        !(config.include? "access_key" and config.include? "secret_key") then

        raise "invalid config file #{config_file}"
      end

      Bixby.manager_uri = config["manager_uri"]
      return Bixby::Client.new(config["access_key"], config["secret_key"])
    end
  end

end # Bixby

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
bixby-client-0.5.3 lib/bixby-client.rb
bixby-client-0.5.2 lib/bixby-client.rb