module AWSUDO

Copyright © 2015-2017 Electronic Arts Inc. All rights reserved.

Attributes

logger[RW]

Public Class Methods

ask_for_credentials() click to toggle source
# File lib/awsudo.rb, line 32
def self.ask_for_credentials
  fd = IO.sysopen("/dev/tty", "w")
  console = IO.new(fd,"w")
  console.print "Login: "
  username = STDIN.gets.chomp
  console.print "Password: "
  password = STDIN.noecho(&:gets).chomp
  console.print "\n"
  [username, password]
end
assume_role_with_agent(role_arn, socket_name) click to toggle source
# File lib/awsudo.rb, line 17
def self.assume_role_with_agent(role_arn, socket_name)
  logger.debug {"role_arn: <#{role_arn}>"}
  logger.debug {"socket_name: <#{socket_name}>"}
  keys = UNIXSocket.open(socket_name) do |client|
    client.puts role_arn
    response = client.gets
    logger.debug {"response: <#{response}>"}
    raise "Connection closed by peer" if response.nil?
    JSON.parse(response.strip)
  end

  raise keys['error'] unless keys['error'].nil?
  keys
end
load_config(filename) click to toggle source
# File lib/awsudo.rb, line 43
def self.load_config(filename)
  config = Hash[*File.read(filename).scan(/^\s*(\w+)\s*=\s*(.*)\s*$/).flatten]
  logger.debug { "config: <#{config.inspect}>" }
  config
end