/
githubmirror
/
dubbo
Обзор
Документация
Войти
/
githubmirror
/
dubbo
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
3.3
licenseCheck.sh
126 строк
4 KB
顾炎
add license header for licenseCheck.sh file (#5143)
08 окт 2019, 08:10
08 окт 2019, 08:10
576ee2c
Код
Авторство
О чём код?
#!/bin/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. # APPEND_ARG="" FOLDER="./" LINE_FLAG="==============================================" TARGET_FILE="./license-list" red=`tput setaf 1` green=`tput setaf 2` reset=`tput sgr0` if [ -n "$1" ]; then echo "checking module $1" APPEND_ARG="-f $1" FOLDER="$1" else echo "checking whole project" fi echo "Running command: mvn clean package -DskipTests=true -PlicenseCheck $APPEND_ARG" mvn clean package -DskipTests=true -PlicenseCheck $APPEND_ARG status=$? if [ $status -eq 0 ]; then echo "mvn command exec success" else echo "${red}mvn command exec fail${reset}" exit 1 fi #contact and generate license file rm -rf $TARGET_FILE LICENSE_FILES=`find $FOLDER -type f -name "THIRD-PARTY.txt"|grep generated-sources` echo "Find license files:" echo "$LICENSE_FILES" for i in $LICENSE_FILES do echo "$LINE_FLAG" >> $TARGET_FILE echo $i >> $TARGET_FILE cat $i >> $TARGET_FILE done echo "license files generated at $TARGET_FILE" #fix missing license dependencies missingLicense=( "(Unknown license) jsr173_api:(Apache License, Version 2.0) jsr173_api" "(Unknown license) \"Java Concurrency in Practice\" book annotations:(BEA licensed) \"Java Concurrency in Practice\" book annotations" "(Unknown license) Java Portlet Specification V2.0:(Apache License, Version 2.0) Java Portlet Specification V2.0" ) for i in "${missingLicense[@]}"; do search=`echo $i |awk -F: '{print $1}'` replace=`echo $i |awk -F: '{print $2}'` sed -i.bak 's/'"$search"'/'"$replace"'/g' $TARGET_FILE done if [ -f $TARGET_FILE.bak ]; then rm -rf $TARGET_FILE.bak fi check_unknown_license=`cat $TARGET_FILE | grep "Unknown license"` #checking unknown license if grep -q "Unknown license" $TARGET_FILE then echo "${red}Find unknown license${reset}" echo "$check_unknown_license" exit 1 fi allowLicense=( "CDDL" "Apache" "Common Development and Distribution License" "Eclipse Public License" "MIT" "The 3-Clause BSD License" "Public domain" "JSR.*107" "Common Public License Version 1.0" "org.scijava:native-lib-loader" "org.codehaus.woodstox:stax2-api" "wsdl4j:wsdl4j" "net.jcip:jcip-annotations" ) #filter allow license license_need_check=`cat $TARGET_FILE | grep -v "generated-sources/license/THIRD-PARTY.txt" | grep -v "third-party dependencies" | grep -v "The project has no dependencies." | grep -v $LINE_FLAG` for i in "${allowLicense[@]}"; do license_need_check=`echo "$license_need_check"|grep -vi "$i"` done # remove empty lines echo $license_need_check | sed '/^[[:space:]]*$/d' > license-need-check if [ ! -s license-need-check ]; then echo "${green}All dependencies license looks good${reset}" else echo "${red}Please check below license${reset}" cat license-need-check fi rm -f license-list license-need-check