diff options
author | Dr. Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com> | 2018-01-09 16:09:14 +0100 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2018-01-10 18:23:28 +0100 |
commit | 433a2e038423f111f5f9e66fe6d8ad67dd241422 (patch) | |
tree | afaff239a5d31e96bf36c50bcb8076afaea90c4d /util | |
parent | 08455bc9b0e69ed5f25c16fc30cc2db57cdca842 (diff) | |
download | openssl-new-433a2e038423f111f5f9e66fe6d8ad67dd241422.tar.gz |
Enhance util/openssl-update-copyright shell script
- Avoid creating repeated year ranges <current_year>-<current_year> for
documents which were added in the current year.
- Use extended regular expressions for better readability (less quoting)
- Use a shebang line which is more portable
Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5044)
Diffstat (limited to 'util')
-rwxr-xr-x | util/openssl-update-copyright | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/util/openssl-update-copyright b/util/openssl-update-copyright index 98d1365625..c432f84622 100755 --- a/util/openssl-update-copyright +++ b/util/openssl-update-copyright @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # # Copyright 2018 The OpenSSL Project Authors. All Rights Reserved. # @@ -12,12 +12,17 @@ myname="$(basename $0)" this_year="$(date '+%Y')" some_year="[12][0-9][0-9][0-9]" +year_range="(${some_year})(-${some_year})?" copyright_owner="The OpenSSL Project" +copyright="Copyright .*${year_range} .*${copyright_owner}" -search="Copyright \(([cC]) \)\?\(${some_year}\)\(-${some_year}\)\? ${copyright_owner}" -replace="Copyright \1\2-${this_year} ${copyright_owner}" - +# sed_script: +# for all lines that contain ${copyright} : { +# replace years yyyy-zzzz (or year yyyy) by yyyy-${this_year} +# replace repeated years yyyy-yyyy by yyyy +# } +sed_script="/${copyright}/{ s/${year_range}/\1-${this_year}/ ; s/(${some_year})-\1/\1/ }" function usage() { cat >&2 <<EOF @@ -47,9 +52,9 @@ for arg in "$@"; do ;; *) if [ -f "$arg" ]; then - sed -i "s/${search}/${replace}/g" "$arg" + sed -E -i "${sed_script}" "$arg" elif [ -d "$arg" ]; then - find "$arg" -name '.[a-z]*' -prune -o -type f -exec sed -i "s/${search}/${replace}/g" {} + + find "$arg" -name '.[a-z]*' -prune -o -type f -exec sed -E -i "${sed_script}" {} + else echo "$arg: no such file or directory" >&2 fi |