diff options
author | Eric Wong <e@80x24.org> | 2019-04-17 10:49:15 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2019-04-18 06:07:24 +0000 |
commit | 7973bc101755b13a1381579c5ee60a716da6ffe1 (patch) | |
tree | ce11296f73d80e27726e012bcc1dabed53059532 /lib/PublicInbox | |
parent | ca5467dff19e404f7b2d263ce32357edbda1f795 (diff) | |
download | public-inbox-7973bc101755b13a1381579c5ee60a716da6ffe1.tar.gz |
This will be used for generating an HTML listing for v1 inboxes, at least. The logic for this follows that of grokmirror, and we may dynamically generate manifest.js.gz natively...
Diffstat (limited to 'lib/PublicInbox')
-rw-r--r-- | lib/PublicInbox/Git.pm | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/PublicInbox/Git.pm b/lib/PublicInbox/Git.pm index 8a96e10c..236f70c1 100644 --- a/lib/PublicInbox/Git.pm +++ b/lib/PublicInbox/Git.pm @@ -312,6 +312,24 @@ sub commit_title ($$) { ($$buf =~ /\r?\n\r?\n([^\r\n]+)\r?\n?/)[0] } +# returns the modified time of a git repo, same as the "modified" field +# of a grokmirror manifest +sub modified ($) { + my ($self) = @_; + my $modified = 0; + my $fh = popen($self, qw(rev-parse --branches)); + defined $fh or return $modified; + local $/ = "\n"; + foreach my $oid (<$fh>) { + chomp $oid; + my $buf = cat_file($self, $oid) or next; + $$buf =~ /^committer .*?> (\d+) [\+\-]?\d+/sm or next; + my $cmt_time = $1; + $modified = $cmt_time if $cmt_time > $modified; + } + $modified || time; +} + 1; __END__ =pod |