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.
76 lines
1.2 KiB
76 lines
1.2 KiB
#!/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
|