Add has-spdx-header.sh script

Add a script to detect if a file has a SPDX header and what the
advertised license is.

	   * relicensing-scripts/has-spdx-header.sh: New script.

Signed-off-by: Benjamin De Kosnik <bkoz@gnu.org>
Signed-off-by: Ben Woodard <woodard@redhat.com>
Signed-off-by: Chenxiong Qi <cqi@redhat.com>
Signed-off-by: Dodji Seketeli <dodji@redhat.com>
Signed-off-by: Giuliano Procida <gprocida@google.com>
Signed-off-by: Jan Engelhardt <jengelh@inai.de>
Signed-off-by: Jessica Yu <jeyu@kernel.org>
Signed-off-by: Jonathan Wakely <jwakely@redhat.com>
Signed-off-by: Mark Wielaard <mark@klomp.org>
Signed-off-by: Matthias Klose <doko@ubuntu.com>
Signed-off-by: Matthias Maennich <maennich@google.com>
Signed-off-by: Ondrej Oprala <ondrej.oprala@gmail.com>
Signed-off-by: Roland McGrath <roland@hack.frob.com>
Signed-off-by: Sinny Kumari <ksinny@gmail.com>
Signed-off-by: Slava Barinov <v.barinov@samsung.com>
This commit is contained in:
Dodji Seketeli 2020-05-27 18:40:17 +02:00
parent be6bf58308
commit 418ea85baf
1 changed files with 105 additions and 0 deletions

View File

@ -0,0 +1,105 @@
#!/bin/sh
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
# Author: Dodji Seketeli <dodji@redhat.com>
file=
prog=$0
display_file_name=
be_quiet=
show_no_spdx=
display_usage()
{
echo "$prog: [options] file"
echo " where options can be:"
echo " -h|--help display this help"
echo " -f|--file prefix output with file name"
echo " -q|--quiet emit no output if no license was found"
echo " --show-no-spdx show file name if it has no spdx header"
}
emit_output_no_license()
{
if test x$show_no_spdx != x; then
echo $display_file_name
elif test x$be_quiet = x; then
if test "x$display_file_name" = x; then
echo "NO-LICENSE"
else
echo "$display_file_name: NO-LICENSE"
fi
fi
exit 1
}
emit_output_with_license()
{
license=$1
if test x$show_no_spdx != x; then
:
elif test "x$display_file_name" = x; then
echo "$license"
else
echo "$display_file_name: $license"
fi
exit 0
}
main()
{
license=$(head --lines=5 $file | sed -n -E "s/^.*(SPDX-License-Identifier:)[ ]*([^*/]+).*$/\2/p")
if test "x$license" = x; then
emit_output_no_license
else
emit_output_with_license "$license"
fi
}
while test $# -ge 1
do
case "$1" in
-h|--help)
display_usage
exit 0
;;
-f|--file)
if test x$2 = x; then
>&2 display_usage
exit 1
fi
display_file_name=$2
shift
;;
-q|--quiet)
be_quiet=yes
shift
;;
--show-no-spdx)
if test x$2 = x; then
>&2 display_usage
exit 1
fi
show_no_spdx=yes
display_file_name=$2
shift
;;
*)
break
;;
esac
done
if test $# -lt 1; then
>&2 display_usage
exit 1
fi
file=$1
main