lib/xcodeproj/command/show.rb
module Xcodeproj class Command class Show < Command self.summary = 'Shows an overview of a project in a YAML representation.' def self.options [ ['--format=[hash|tree_hash|raw]', 'YAML output format'], ].concat(super) end self.arguments = [ CLAide::Argument.new('PROJECT', false), ] def initialize(argv) self.xcodeproj_path = argv.shift_argument @output_format = argv.option('format') @output_format &&= @output_format.to_sym super end def validate super unless [nil, :hash, :tree_hash, :raw].include?(@output_format) help! "Unknown format `#{@output_format}`" end open_project! end def run require 'yaml' if @output_format case @output_format when :hash puts xcodeproj.to_hash.to_yaml when :tree_hash puts xcodeproj.to_tree_hash.to_yaml when :raw puts xcodeproj.to_yaml end return end pretty_print = xcodeproj.pretty_print sections = [] pretty_print.each do |key, value| section = key.green yaml = value.to_yaml yaml.gsub!(/^---$/, '') yaml.gsub!(/^-/, "\n-") yaml.prepend(section) sections << yaml end puts sections * "\n\n" end end end end