libabigail/relicensing-scripts/replace-spdx-license.sh
Dodji Seketeli 964bf04158 Add replace-spdx-license.sh script
This script is to replace an SPDX license ID by another one.
I.e, it's to perform an actual re-licensing of a given file.

A way to use the script is this:

    replace-spdx-license.sh  --from LGPL-3.0-or-later \
			      --to  "Apache-2.0 WITH LLVM-exception" \
			      some-file-to-relicense.cc

	* relicensing-scripts/replace-spdx-license.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>
2020-12-02 11:48:33 +01:00

76 lines
1.2 KiB
Bash
Executable File

#!/bin/sh
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
# Author: Dodji Seketeli <dodji@redhat.com>
from_license_id=
to_license_id=
input_file=
prog=$0
display_usage()
{
echo "$prog: [options] --from <from-spdx-license-id> --to <to-spdx-license-id> <file>"
echo " where options can be:"
echo " -h|--h display this help"
}
main()
{
header=$(head --lines=5 $input_file | grep "SPDX-License-Identifier:")
if test "x$header" != x; then
license=$(echo "$header" | sed -r "s/^.*(SPDX-License-Identifier:)[ ]*([^*/]+).*$/\2/")
fi
if test "x$license" != x -a "$license" = "$from_license_id"; then
sed -i -r "s/$from_license_id/$to_license_id/" $input_file
exit 0
fi
exit 1
}
# This program takes at least 5 arguments
if test $# -lt 5; then
>&2 display_usage
exit 1
fi
# Parse parameters
while test $# -gt 1; do
case "$1" in
-h|--h)
display_usage
exit 0
;;
-f|--from)
from_license_id=$2
shift
;;
-t|--to)
to_license_id=$2
shift
;;
-*)
>&2 display_usage
exit 1
;;
*)
input_file="$1"
;;
esac
shift
done
if test $# -lt 1; then
>&2 display_usage
exit 1
fi
input_file=$1
main