summaryrefslogtreecommitdiffstats
path: root/Tools/Scripts/show-pretty-diff
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/Scripts/show-pretty-diff')
-rwxr-xr-xTools/Scripts/show-pretty-diff77
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 . ".";
+}