module SwitchCreds

Constants

VERSION

Public Class Methods

get_creds() click to toggle source
# File lib/switchcreds.rb, line 5
def self.get_creds
  # detect the OS and user to find the .aws/ directory
  if OS.mac?
    $user = Dir.home[7, Dir.home.length].to_s
  elsif OS.linux?
    $user = Dir.home[6, Dir.home.length].to_s
  elsif OS.windows?
    $user = Dir.home[9, Dir.home.length].to_s
  else
    puts "ERROR:".colorize(:red) + " Neither WINDOWS, MAC, nor LINUX OS detected.\n Unable to proceed."
  end
  dir = Dir.entries("/Users/#{$user}/.aws")
  creds = []
  dir.each do |f|
    if f.length > 11 && f[0,12] == "credentials_"
      creds.push(f[12, f.length])
    end
  end
  creds
end
switch_creds() click to toggle source
# File lib/switchcreds.rb, line 26
def self.switch_creds
  creds = get_creds()
  puts "CHOOSE FROM BELOW:\n".colorize(:green)

  i = 0
  creds.each do |o|
    puts "\t#{i}: #{o}"
    i += 1
  end

  selection = STDIN.gets.chomp.to_i
  selection = creds[selection]

  IO.copy_stream("/Users/#{$user}/.aws/credentials_#{selection}", "/Users/#{$user}/.aws/credentials")

  32.times { print "*".colorize(:green) }
  puts "\n* Using #{selection.upcase!.colorize(:red)} creds now *\n"
  32.times { print "*".colorize(:green) }
  puts "\n"
end
which_creds() click to toggle source
# File lib/switchcreds.rb, line 47
def self.which_creds
  creds = get_creds
  creds.each do |cred|
    if FileUtils.compare_file("/Users/#{$user}/.aws/credentials", "/Users/#{$user}/.aws/credentials_#{cred}")
      32.times { print "*".colorize(:green) }
      puts "\n* You're using #{cred.upcase!.colorize(:red)} creds.*\n"
      32.times { print "*".colorize(:green) }
      puts "\n"
    end
  end
end