Use sticky positioning for the code review toolbar
[WebKit-https.git] / Websites / bugs.webkit.org / PrettyPatch / prettify.rb
1 #!/usr/bin/ruby
2
3 require 'PrettyPatch'
4 require 'optparse'
5 require 'webrick/htmlutils'
6
7 BACKTRACE_SEPARATOR = "\n\tfrom "
8
9 options = { :html_exceptions => false }
10 OptionParser.new do |opts|
11     opts.banner = "Usage: #{File.basename($0)} [options] [patch-file]"
12
13     opts.separator ""
14
15     opts.on("--html-exceptions", "Print exceptions to stdout as HTML") { |h| options[:html_exceptions] = h }
16 end.parse!
17
18 patch_data = nil
19 if ARGV.length == 0 || ARGV[0] == '-' then
20     patch_data = $stdin.read
21 else
22     File.open(ARGV[0]) { |file| patch_data = file.read }
23 end
24
25 begin
26     puts PrettyPatch.prettify(patch_data)
27 rescue => exception
28     raise unless options[:html_exceptions]
29
30     backtrace = exception.backtrace
31     backtrace[0] += ": " + exception + " (" + exception.class.to_s + ")"
32     print "<pre>\n", WEBrick::HTMLUtils::escape(backtrace.join(BACKTRACE_SEPARATOR)), "\n</pre>\n"
33 end