aboutsummaryrefslogtreecommitdiffstats
path: root/third-party/License/add_license.sh
diff options
context:
space:
mode:
authorYujun Zhang <zhang.yujunz@zte.com.cn>2017-02-21 09:00:03 +0000
committerGerrit Code Review <gerrit@opnfv.org>2017-02-21 09:00:03 +0000
commitac28684fd2fe68d8796f0b46da72e2e6199d1b7e (patch)
tree8f75f2df950cb477e861dbe1239629bce316ac8a /third-party/License/add_license.sh
parent0dca380fe84e42309d3c3a66b3f31ec2f645caf5 (diff)
parentaca3c1d72e7f23cd9422179e18c5d67eb73f1484 (diff)
Merge "Include third party script for license checking and amending"
Diffstat (limited to 'third-party/License/add_license.sh')
-rwxr-xr-xthird-party/License/add_license.sh180
1 files changed, 180 insertions, 0 deletions
diff --git a/third-party/License/add_license.sh b/third-party/License/add_license.sh
new file mode 100755
index 00000000..9b383c62
--- /dev/null
+++ b/third-party/License/add_license.sh
@@ -0,0 +1,180 @@
+#!/bin/bash
+# Copyright justin.chigang@gmail.com
+#
+# Licensed 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.
+
+TMP_FILE=tmp.file
+LICENSE_TOKEN="http://www.apache.org/licenses/LICENSE-2.0"
+
+function get_first_author()
+{
+ author=$(git log --reverse --pretty=format:"%ae" $1 | head -1)
+ substring=$(git log --reverse --pretty=format:"%ae" $1 | head -1 | awk -F@ '{print $2}')
+ case $substring in
+ huawei*)
+ echo "HUAWEI TECHNOLOGIES CO.,LTD"
+ ;;
+ orange*)
+ echo "Orange"
+ ;;
+ zte*)
+ echo "ZTE Corporation"
+ ;;
+ *)
+ echo "$author"
+ ;;
+ esac
+}
+
+function get_latest_year()
+{
+ git log --pretty=format:"%ad" $1 | head -1 | awk '{print $5}'
+}
+
+function gen_c_license()
+{
+cat << EOF >$1
+/*******************************************************************************
+ * Copyright (c) $2 $3 and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Apache License, Version 2.0
+ * which accompanies this distribution, and is available at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *******************************************************************************/
+
+EOF
+}
+
+function gen_xml_license()
+{
+cat << EOF >$1
+<!--
+ Copyright (c) $2 $3 and others.
+
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Apache License, Version 2.0
+ which accompanies this distribution, and is available at
+ http://www.apache.org/licenses/LICENSE-2.0
+-->
+
+EOF
+}
+
+function gen_bash_license()
+{
+cat << EOF >$1
+##############################################################################
+# Copyright (c) $2 $3 and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+EOF
+}
+
+function add_c_license()
+{
+ C_LICENSE="c_license_header.tmp"
+ author=`get_first_author "$1"`
+ year=`get_latest_year "$1"`
+ gen_c_license $C_LICENSE $year "$author"
+ cat $C_LICENSE $1 > $TMP_FILE
+ rm -f $C_LICENSE
+ mv $TMP_FILE $1
+}
+
+function add_xml_license()
+{
+ XML_LICENSE="xml_license_header.tmp"
+ author=`get_first_author "$1"`
+ year=`get_latest_year "$1"`
+ gen_xml_license $XML_LICENSE $year "$author"
+ cat $XML_LICENSE $1 > $TMP_FILE
+ rm -f $XML_LICENSE
+ mv $TMP_FILE $1
+}
+
+function add_bash_license()
+{
+ BASH_LICENSE="bash_license_header.tmp"
+ author=`get_first_author "$1"`
+ year=`get_latest_year "$1"`
+ gen_bash_license $BASH_LICENSE $year "$author"
+ cat $1 | head -1 | grep "#!" > /dev/null
+ if [ $? -eq 0 ]; then
+ #insert 2
+ sed -i "1 r $BASH_LICENSE" $1
+ else
+ #sed -i "1 R $BASH_LICENSE" $1
+ cat $BASH_LICENSE $1 > $TMP_FILE
+ mv $TMP_FILE $1
+ fi
+ rm -f $BASH_LICENSE
+}
+
+if [[ -z "$1" ]] || [[ ! -d "$1" ]]; then
+ echo "The directory is empty or not exist!"
+ echo "It will use the current directory."
+ nowdir=$(pwd)
+else
+ nowdir=$(cd $1; pwd)
+fi
+echo "$nowdir"
+
+n=0
+
+function Searchfile()
+{
+ cd $1
+
+ dirlist=$(ls)
+ for dirname in $dirlist
+ do
+ if [[ -d "$dirname" ]];then
+ n=$((n+4))
+ cd $dirname
+ for i in $( seq 0 $n );do echo -n ' ';done;echo "$dirname ..."
+ Searchfile $(pwd)
+ cd ..
+ n=$((n-4))
+ fi;
+
+ filename=$dirname
+ if [[ -f "$filename" ]]; then
+ for i in $( seq 0 $n );do echo -n ' ';done;echo " |--$filename"
+ grep -rn $LICENSE_TOKEN $filename >/dev/null
+ if [ $? -eq 1 ]; then
+ if [ "${filename##*.}" = "c" -o "${filename##*.}" = "cpp" -o "${filename##*.}" = "java" ]; then
+ add_c_license $filename
+ for i in $( seq 0 $n );do echo -n ' ';done;echo " |--add license for $filename... "
+ elif [ "${filename##*.}" = "py" -o "${filename##*.}" = "yml" -o "${filename##*.}" = "yaml" -o "${filename##*.}" = "sh" ]; then
+ add_bash_license $filename
+ for i in $( seq 0 $n );do echo -n ' ';done;echo " |--add license for $filename... "
+ elif [ "${filename##*.}" = "xml" ]; then
+ add_xml_license $filename
+ for i in $( seq 0 $n );do echo -n ' ';done;echo " |--add license for $filename... "
+ fi;
+ fi;
+ fi;
+ done;
+}
+
+Searchfile $nowdir
+
+# Revert changes of skipped files, e.g. __init__.py
+
+git checkout \*\*/__init__.py