1#! /usr/bin/env perl
2# Copyright 2021-2022 The OpenSSL Project Authors. All Rights Reserved.
3#
4# Licensed under the Apache License 2.0 (the "License").  You may not use
5# this file except in compliance with the License.  You can obtain a copy
6# in the file LICENSE in the source distribution or at
7# https://www.openssl.org/source/license.html
8
9use strict;
10use warnings;
11
12package OpenSSL::copyright;
13
14sub year_of {
15    my $file = shift;
16
17    return $ENV{'OSSL_COPYRIGHT_YEAR'} if defined $ENV{'OSSL_COPYRIGHT_YEAR'};
18
19    # Get the current year.  We use that as the default because the other
20    # common case is that someone unpacked a tarfile and the file dates
21    # are't properly set on extract.
22    my $YEAR = [localtime()]->[5] + 1900;
23
24    # See if git's available
25    open my $FH,
26       "git log -1 --date=short --format=format:%cd $file 2>/dev/null|"
27           or return $YEAR;
28    my $LINE = <$FH>;
29    close $FH;
30    $LINE =~ s/^([0-9]*)-.*/$1/;
31    $YEAR = $LINE if $LINE;
32    return $YEAR;
33}
34
35sub latest {
36    my $l = 0;
37    foreach my $f (@_ ) {
38        my $y = year_of($f);
39        $l = $y if $y > $l;
40    }
41    return $l
42}
431;
44