You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

106 lines
1.7 KiB

#!/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