Skip to content
Snippets Groups Projects
check-license 2.47 KiB
Newer Older
  • Learn to ignore specific revisions
  • #!/usr/bin/env bash
    
    #
    # 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.
    #
    
    
    acquire_rat_jar () {
    
    
      URL="http://repo1.maven.org/maven2/org/apache/rat/apache-rat/${RAT_VERSION}/apache-rat-${RAT_VERSION}.jar"
    
      # Download rat launch jar if it hasn't been downloaded yet
      if [ ! -f "$JAR" ]; then
        # Download
        printf "Attempting to fetch rat\n"
        JAR_DL="${JAR}.part"
        if [ $(command -v curl) ]; then
          curl -L --silent "${URL}" > "$JAR_DL" && mv "$JAR_DL" "$JAR"
        elif [ $(command -v wget) ]; then
          wget --quiet ${URL} -O "$JAR_DL" && mv "$JAR_DL" "$JAR"
        else
          printf "You do not have curl or wget installed, please install rat manually.\n"
    
      fi
    
      unzip -tq "$JAR" &> /dev/null
      if [ $? -ne 0 ]; then 
        # We failed to download
        rm "$JAR"
        printf "Our attempt to download rat locally to ${JAR} failed. Please install rat manually.\n"
        exit -1
    
      fi
    }
    
    # Go to the Spark project root directory
    
    
    if test -x "$JAVA_HOME/bin/java"; then
        declare java_cmd="$JAVA_HOME/bin/java"
    
    export rat_jar="$FWDIR"/lib/apache-rat-${RAT_VERSION}.jar
    mkdir -p "$FWDIR"/lib
    
    
    [[ -f "$rat_jar" ]] || acquire_rat_jar || {
        echo "Download failed. Obtain the rat jar manually and place it at $rat_jar"
        exit 1
    }
    
    
    mkdir target
    $java_cmd -jar "$rat_jar" -E "$FWDIR"/dev/.rat-excludes -d "$FWDIR" > target/rat-results.txt
    
    if [ $? -ne 0 ]; then
       echo "RAT exited abnormally"
       exit 1
    fi
    
    
    ERRORS="$(cat target/rat-results.txt | grep -e "??")"
    
    
    if test ! -z "$ERRORS"; then 
        echo "Could not find Apache license headers in the following files:"
        echo "$ERRORS"
        exit 1
    else 
        echo -e "RAT checks passed."
    fi