diff -r 000000000000 -r dd21522fd290 webengine/osswebengine/WebKitTools/Scripts/update-iexploder-cssproperties --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webengine/osswebengine/WebKitTools/Scripts/update-iexploder-cssproperties Mon Mar 30 12:54:55 2009 +0300 @@ -0,0 +1,112 @@ +#!/usr/bin/perl + +# Copyright (C) 2007 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. +# 3. Neither the name of Apple Inc. ("Apple") nor the names of +# its contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY APPLE 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 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. + +# This script updates WebKitTools/iExploder/htdocs/cssproperties.in based on +# WebCore/css/CSSPropertyNames.in. + +use warnings; +use strict; + +use FindBin; +use lib $FindBin::Bin; +use webkitdirs; + +use File::Spec; + +sub generateSectionFromCSSPropertyNamesFile(); +sub readiExploderFile(); +sub svnRevision($); +sub writeiExploderFile(); + +my $iExploderFile = File::Spec->catfile(sourceDir(), split("/", "WebKitTools/iExploder/htdocs/cssproperties.in")); +my $cssPropertyNamesFile = File::Spec->catfile(sourceDir(), split("/", "WebCore/css/CSSPropertyNames.in")); + +my @sections = readiExploderFile(); +$sections[0] = generateSectionFromCSSPropertyNamesFile(); +writeiExploderFile(); + +print `svn stat $iExploderFile`; +print "Successfully updated!\n"; + +exit 0; + +sub generateSectionFromCSSPropertyNamesFile() +{ + my $revision = svnRevision($cssPropertyNamesFile); + my $path = File::Spec->abs2rel($cssPropertyNamesFile, sourceDir()); + my $result = "# From WebKit svn r" . $revision . " (" . $path . ")\n"; + + my @properties = (); + + open(IN, $cssPropertyNamesFile) || die "$!"; + while (my $l = ) { + chomp $l; + next if $l =~ m/^\s*#/ || $l =~ m/^\s*$/; + push(@properties, $l); + } + close(IN); + + $result .= join("\n", sort { $a cmp $b } @properties) . "\n\n"; + + return $result; +} + +sub readiExploderFile() +{ + my @sections = (); + local $/ = "\n\n"; + + open(IN, $iExploderFile) || die "$!"; + @sections = ; + close(IN); + + return @sections; +} + +sub svnRevision($) +{ + my ($file) = @_; + my $revision = ""; + + open INFO, "svn info '$file' |" or die; + while () { + if (/^Revision: (.+)/) { + $revision = $1; + } + } + close INFO; + + return $revision ? $revision : "UNKNOWN"; +} + +sub writeiExploderFile() +{ + open(OUT, "> $iExploderFile") || die "$!"; + print OUT join("", @sections); + close(OUT); +}