Commit b26d696c authored by Dr. Matthias St. Pierre's avatar Dr. Matthias St. Pierre Committed by Richard Levitte
Browse files

Add util/openssl-update-copyright shell script



usage: openssl-update-copyright [-h|--help] [file|directory] ...

Updates the year ranges of all OpenSSL copyright statements in the given
files or directories. (Directories are traversed recursively.)

Only copyright statements containing the string 'The OpenSSL Project' are
affected. The copyright time range is adjusted to include the current year.
If only a single year was specified, it is replaced by a time range starting
at that year and ending at the current year. All '(c)' and '(C)' signs are
preserved.

Signed-off-by: default avatarDr. Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com>

Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
Reviewed-by: default avatarRichard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5027)
parent 47eeaf45
Loading
Loading
Loading
Loading
+58 −0
Original line number Diff line number Diff line
#!/bin/bash
#
# Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
#
# Licensed under the OpenSSL license (the "License").  You may not use
# this file except in compliance with the License.  You can obtain a copy
# in the file LICENSE in the source distribution or at
# https://www.openssl.org/source/license.html


myname="$(basename $0)"

this_year="$(date '+%Y')"
some_year="[12][0-9][0-9][0-9]"

copyright_owner="The OpenSSL Project"

search="Copyright \(([cC]) \)\?\(${some_year}\)\(-${some_year}\)\? ${copyright_owner}"
replace="Copyright \1\2-${this_year} ${copyright_owner}"


function usage() {
	cat >&2 <<EOF
usage: $myname [-h|--help] [file|directory] ...

Updates the year ranges of all OpenSSL copyright statements in the given
files or directories. (Directories are traversed recursively.)
EOF
}

if [ $# -eq 0 ]; then
	usage
	exit 0
fi


for arg in "$@"; do
	case $arg in
		-h|--help)
			usage
			exit 0
			;;
		-*)
			echo -e "illegal option: $arg\n" >& 2
			usage
			exit 1
			;;
		*)
			if [ -f "$arg" ]; then
				sed -i "s/${search}/${replace}/g" "$arg"
			elif [ -d "$arg" ]; then
				find "$arg" -name '.[a-z]*' -prune -o -type f -exec sed -i "s/${search}/${replace}/g" {} +
			else
				echo "$arg: no such file or directory" >&2
			fi
			;;
	esac
done