aboutsummaryrefslogtreecommitdiffstats
path: root/tools/general_assembly.pl
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2023-11-22 20:33:02 +0100
committerAnton Khirnov <anton@khirnov.net>2023-11-26 10:12:01 +0100
commit56a8b34b64e47dde75314f1b648f3a6f7a325437 (patch)
tree32519b056813cdf9ab10dbd156584fd3e127b45d /tools/general_assembly.pl
parente7111ba44a3b0ca8c3a22eb5b8adaf3d766bc76c (diff)
downloadffmpeg-56a8b34b64e47dde75314f1b648f3a6f7a325437.tar.gz
tools/general_assembly: implement extra GA members
Diffstat (limited to 'tools/general_assembly.pl')
-rwxr-xr-xtools/general_assembly.pl20
1 files changed, 17 insertions, 3 deletions
diff --git a/tools/general_assembly.pl b/tools/general_assembly.pl
index 4c3208ccac..3bf65f3405 100755
--- a/tools/general_assembly.pl
+++ b/tools/general_assembly.pl
@@ -13,6 +13,12 @@ use utf8;
use DateTime;
use DateTime::Format::ISO8601;
+my @extra_members = (
+ # entries should be of the format
+ # [ <name>, <email>, <date elected> ],
+ # ['Foo Bar', 'foo@bar', DateTime->new(year => 8613, month => 5, day => 22)],
+);
+
sub trim { my $s = shift; $s =~ s/^\s+|\s+$//g; return $s };
sub print_help {
@@ -29,7 +35,7 @@ sub print_help {
my $print_full = 1;
my $print_names = 0;
my $print_emails = 0;
-my $date = DateTime->now()->iso8601;
+my $date_str = DateTime->now()->iso8601;
my $help = 0;
GetOptions(
@@ -37,7 +43,7 @@ GetOptions(
"names" => \$print_names,
"emails" => \$print_emails,
"help" => \$help,
- "date=s" => \$date,
+ "date=s" => \$date_str,
"h" => \$help,
);
@@ -76,7 +82,8 @@ sub get_date_range {
return ($date_since, $date_until);
}
-my ($since, $until) = get_date_range(DateTime::Format::ISO8601->parse_datetime($date));
+my $date = DateTime::Format::ISO8601->parse_datetime($date_str);
+my ($since, $until) = get_date_range($date);
my @shortlog = split /\n/, decode('UTF-8',
`git log --pretty=format:"%aN <%aE>" --since="$since" --until="$until" | sort | uniq -c | sort -r`,
@@ -108,6 +115,13 @@ foreach my $line (@shortlog) {
$assembly{$name} = $email;
}
+foreach my $entry (@extra_members) {
+ my $elected = $entry->[2];
+ if ($date->is_between($elected, $elected->clone()->set_year($elected->year + 2))) {
+ $assembly{$entry->[0]} = $entry->[1];
+ }
+}
+
# generate the output string
my @out_lines;
foreach my $name (sort keys %assembly) {