class Rudy::CLI::Config

Public Instance Methods

config() click to toggle source

Display configuration from the local user data file (~/.rudy/config). This config contains user data which is sent to each EC2 when it's created.

The primary purpose of this command is to give other apps a way to check various configuration values. (This is mostly useful for debugging and checking configuration on an instance itself).

It will return the most specific configuration available. If the attribute isn'e found it will check each parent for the same attribute. e.g. if [prod][ami] is not available, it will check [prod] and then [ami].

# Display all configuration
$ rudy config --all

# Display just machines
$ rudy config --defaults
# File lib/rudy/cli/config.rb, line 33
def config
  
  # TODO: Re-enable:
  #     # Display the value for a specific machine.
  #     $ rudy -e prod -r db config param-name
  
  if @@config.nil? || @@config.empty?
    return if @@global.quiet
    raise Rudy::NoConfig
  end

  outform = @@global.format == :json ? :to_json : :to_yaml
  
  types = @option.marshal_dump.keys & @@config.keys # Intersections only
  types = @@config.keys if @option.all
  types = [:machines] if types.empty?
    
  if @option.project
    rf = File.join(RUDY_HOME, 'Rudyfile')
    raise "Cannot find: #{rf}" unless File.exists?(rf)
    li File.read(rf)
    
  elsif @option.script
    conf = fetch_script_config
    li conf.to_hash.send(outform) if conf
    
  else
    #li "# ACCOUNTS: [not displayed]" if types.delete(:accounts)
    types.each do |conftype|
      li "# #{conftype.to_s.upcase}"
      next unless @@config[conftype]  # Nothing to output
      if conftype == :accounts
        skey = @@config[conftype][:aws][:secretkey]
        @@config[conftype][:aws][:secretkey] = hide_secret_key(skey)
      end
      
      li @@config[conftype].to_hash.send(outform)
    end
  end
  
end
print_global() click to toggle source
print_header() click to toggle source

We force the CLI::Base#print_header to be quiet

Private Instance Methods

hide_secret_key(skey) click to toggle source
# File lib/rudy/cli/config.rb, line 88
def hide_secret_key(skey)
  skey = skey.to_s
  "%s%s%s" % [skey[0], '.'*18, skey[-1]]
end