require 'keyring_liberator' module Pod class Command class Keys class List < Keys self.summary = 'Lists all known keys and values.' self.description = <<-DESC Shows all the current keys and values for your current working directory. Also lists all known projects with variable stores. DESC def run # List all settings for current app this_keyring = get_current_keyring if this_keyring display_current_keyring this_keyring end # List all known bundle ids all_keyrings = CocoaPodsKeys::KeyringLiberator.get_all_keyrings all_keyrings.each do |keyring| display_keyring(keyring) if !this_keyring || keyring.path != this_keyring.path end end def display_current_keyring(keyring) UI.puts "Keys for #{keyring.name}" data = keyring.keychain_data data.each_with_index do |(key, value), index| prefix = index == data.length - 1 ? ' └ ' : ' ├ ' UI.puts prefix + " #{key} - #{value}" end UI.puts end def display_keyring(keyring) UI.puts "#{keyring.name} - #{keyring.path}" if keyring.keys.empty? # Skip elsif keyring.keys.length == 1 UI.puts ' └ ' + keyring.keys[0] else UI.puts ' └ ' + keyring.keys[0...-1].join(' ') + ' & ' + keyring.keys[-1] end UI.puts end end end end end