diff options
Diffstat (limited to 'Tools/Scripts/show-pretty-diff')
-rwxr-xr-x | Tools/Scripts/show-pretty-diff | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/Tools/Scripts/show-pretty-diff b/Tools/Scripts/show-pretty-diff new file mode 100755 index 0000000..2a17d3f --- /dev/null +++ b/Tools/Scripts/show-pretty-diff @@ -0,0 +1,77 @@ +#!/usr/bin/perl -w + +# Copyright (C) 2011 Apple Inc. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS +# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +# THE POSSIBILITY OF SUCH DAMAGE. + +use strict; +use FindBin; +use File::Temp qw(tempfile); +use lib $FindBin::Bin; +use webkitdirs; + +my $inputPath = ""; +if ($ARGV[0]) { + $inputPath = $ARGV[0] +} else { + # Create a temporary file for STDIN. + # FIXME: We can probably avoid putting this on the disk by directly piping + # to prettify.rb via IPC::Open2. + my $inputTempFileHandle; + ($inputTempFileHandle, $inputPath) = tempfile( + "inputtemp-XXXXXXXX", + DIR => File::Spec->tmpdir(), + SUFFIX => ".diff", + UNLINK => 0, + ); + + while (<STDIN>) { + print $inputTempFileHandle $_; + } + + close($inputTempFileHandle); +} + +# Create a temporary file for prettified patch. +my ($prettydiffFileHandle, $prettydiffPath) = tempfile( + "prettydiff-XXXXXXXX", + DIR => File::Spec->tmpdir(), + SUFFIX => ".html", + UNLINK => 0, +); +close($prettydiffFileHandle); + +my $prettyPatchDir = sourceDir() . "/Websites/bugs.webkit.org/PrettyPatch/"; +my $prettyPatchTool = sourceDir() . "/Websites/bugs.webkit.org/PrettyPatch/prettify.rb"; + +my $pathToPrettify = "ruby -I " . sourceDir() . "/Websites/bugs.webkit.org/PrettyPatch/ " . sourceDir() . "/Websites/bugs.webkit.org/PrettyPatch/prettify.rb"; +system "$pathToPrettify $inputPath > $prettydiffPath"; + +if (isAppleMacWebKit()) { + system "open", $prettydiffPath; +} elsif (isCygwin()) { + system "cygstart",$prettydiffPath; +} elsif (isWindows()) { + system "start", $prettydiffPath; +} else { + print "Created prettified diff at " . $prettydiffPath . "."; +} |