mirror of
https://github.com/zhigang1992/RubyMotion.git
synced 2026-04-03 22:49:56 +08:00
[vendor] Actually add our custom XCPretty printer.
This commit is contained in:
84
lib/motion/project/vendor/xcpretty_printer.rb
vendored
Normal file
84
lib/motion/project/vendor/xcpretty_printer.rb
vendored
Normal file
@@ -0,0 +1,84 @@
|
||||
module Motion; module Project; class Vendor;
|
||||
class XCPrettyPrinter
|
||||
include XCPretty::Printer
|
||||
|
||||
def pretty_format(text)
|
||||
case text
|
||||
when /^ProcessPCH/
|
||||
print_pch_processing(text)
|
||||
when /^CompileC/
|
||||
print_compiling(text)
|
||||
when /^=== BUILD TARGET/
|
||||
print_build_target(text)
|
||||
when /^PhaseScriptExecution/
|
||||
print_run_script(text)
|
||||
when /^(Ld|Libtool)/
|
||||
print_linking(text)
|
||||
when /^CpResource/
|
||||
print_cpresource(text)
|
||||
when /^CopyStringsFile/
|
||||
print_copy_strings_file(text)
|
||||
when /^ProcessInfoPlistFile/
|
||||
print_processing_info_plist(text)
|
||||
else
|
||||
""
|
||||
end
|
||||
end
|
||||
|
||||
def optional_newline
|
||||
"\n"
|
||||
end
|
||||
|
||||
def print_build_target(text)
|
||||
info = project_build_info(text)
|
||||
format("Build", "#{format_path(info[:project])}.xcodeproj [#{info[:target]} - #{info[:configuration]}]")
|
||||
end
|
||||
|
||||
def print_processing_info_plist(text)
|
||||
format("Create", format_path(text.lines.first.shellsplit.last))
|
||||
end
|
||||
|
||||
def print_pch_processing(text)
|
||||
@printed_pch_files ||= []
|
||||
path = text.shellsplit[2]
|
||||
if @printed_pch_files.include?(path)
|
||||
''
|
||||
else
|
||||
@printed_pch_files << path
|
||||
format("Compile", format_path(path))
|
||||
end
|
||||
end
|
||||
|
||||
def print_compiling(text)
|
||||
format("Compile", format_path(text.shellsplit[2]))
|
||||
end
|
||||
|
||||
def print_run_script(text)
|
||||
format("Script", "'#{text.lines.first.shellsplit[1..-2].join(' ').gsub('\ ',' ')}'")
|
||||
end
|
||||
|
||||
def print_linking(text)
|
||||
format("Link", format_path(text.shellsplit[1]))
|
||||
end
|
||||
|
||||
def print_cpresource(text)
|
||||
format("Copy", format_path(text.shellsplit[1]))
|
||||
end
|
||||
|
||||
def print_copy_strings_file(text)
|
||||
format("Copy", format_path(text.shellsplit))
|
||||
end
|
||||
|
||||
def format_path(path)
|
||||
path = File.join(Dir.pwd, path)
|
||||
root = ENV['RM_XCPRETTY_PRINTER_PROJECT_ROOT']
|
||||
".#{path[root.size..-1]}" # make relative to project root
|
||||
end
|
||||
|
||||
def format(command, argument_text)
|
||||
result = "\e[1m#{command.rjust(10)}\e[0m #{argument_text}"
|
||||
end
|
||||
end
|
||||
end; end; end
|
||||
|
||||
Motion::Project::Vendor::XCPrettyPrinter
|
||||
Reference in New Issue
Block a user