]> git.ipfire.org Git - thirdparty/openssl.git/blob - util/openssl-update-copyright
Adapt apps/mac.c to use provider based MACs
[thirdparty/openssl.git] / util / openssl-update-copyright
1 #!/usr/bin/env bash
2 #
3 # Copyright 2018 The OpenSSL Project Authors. All Rights Reserved.
4 #
5 # Licensed under the Apache License 2.0 (the "License"). You may not use
6 # this file except in compliance with the License. You can obtain a copy
7 # in the file LICENSE in the source distribution or at
8 # https://www.openssl.org/source/license.html
9
10
11 myname="$(basename $0)"
12
13 this_year="$(date '+%Y')"
14 some_year="[12][0-9][0-9][0-9]"
15 year_range="(${some_year})(-${some_year})?"
16
17 copyright_owner="The OpenSSL Project"
18 copyright="Copyright .*${year_range} .*${copyright_owner}"
19
20 # sed_script:
21 # for all lines that contain ${copyright} : {
22 # replace years yyyy-zzzz (or year yyyy) by yyyy-${this_year}
23 # replace repeated years yyyy-yyyy by yyyy
24 # }
25 sed_script="/${copyright}/{ s/${year_range}/\1-${this_year}/ ; s/(${some_year})-\1/\1/ }"
26
27 function usage() {
28 cat >&2 <<EOF
29 usage: $myname [-h|--help] [file|directory] ...
30
31 Updates the year ranges of all OpenSSL copyright statements in the given
32 files or directories. (Directories are traversed recursively.)
33 EOF
34 }
35
36 if [ $# -eq 0 ]; then
37 usage
38 exit 0
39 fi
40
41
42 for arg in "$@"; do
43 case $arg in
44 -h|--help)
45 usage
46 exit 0
47 ;;
48 -*)
49 echo -e "illegal option: $arg\n" >& 2
50 usage
51 exit 1
52 ;;
53 *)
54 if [ -f "$arg" ]; then
55 sed -E -i "${sed_script}" "$arg"
56 elif [ -d "$arg" ]; then
57 find "$arg" -name '.[a-z]*' -prune -o -type f -exec sed -E -i "${sed_script}" {} +
58 else
59 echo "$arg: no such file or directory" >&2
60 fi
61 ;;
62 esac
63 done