<!--
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
-->

<project name="update-vendor" default="update-vendor" basedir=".">

    <property file="personal.properties"/>
    <property file="build.properties"/>
    <property file="vendor.properties"/>

    <!-- ============================================================ -->

    <target name="update-vendor">
        <delete dir="${TMP}"/>

        <delete dir="${VENDOR}"/>
        <mkdir  dir="${VENDOR}"/>

        <antcall target="get-web-inspector"/>
    </target>

    <!-- ============================================================ -->

    <!-- ============================================================ -->

    <target name="get-web-inspector">
        <delete dir="${VENDOR}/webkit"/>
        <mkdir  dir="${VENDOR}/webkit/WebCore"/>

        <exec executable="svn" dir="${VENDOR}/webkit/WebCore">
            <arg value="--non-interactive"/>
            <arg value="--trust-server-cert"/>
            <arg value="export"/>
            <arg value="-r"/>
            <arg value="${WEBKIT_VERSION}"/>
            <arg value="${WEBKIT_URL_PREFIX}/Source/WebCore/inspector"/>
        </exec>

        <exec executable="svn" dir="${VENDOR}/webkit/WebCore">
            <arg value="--non-interactive"/>
            <arg value="--trust-server-cert"/>
            <arg value="export"/>
            <arg value="-r"/>
            <arg value="${WEBKIT_VERSION}"/>
            <arg value="${WEBKIT_URL_PREFIX}/Source/WebCore/English.lproj"/>
        </exec>

        <delete>
            <fileset dir="${VENDOR}/webkit/WebCore/inspector">
                <include name="**/*.cpp"/>
                <include name="**/*.h"/>
                <include name="**/*.pm"/>
                <include name="**/*.pl"/>
            </fileset>
        </delete>

        <exec executable="grep" outputproperty="gpl-grep-results" dir="${VENDOR}/webkit/WebCore">
            <arg value="-r"/>
            <arg value="GPL"/>
            <arg value="."/>
        </exec>

        <condition property="found-no-gpl-files">
            <equals arg1="" arg2="${gpl-grep-results}"/>
        </condition>

        <fail unless="found-no-gpl-files" message="The string GPL was found in the WebKit files"/>

    </target>

    <!-- ============================================================ -->

</project>
