about summary refs log tree commit homepage
path: root/lib
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2019-04-17 10:49:15 +0000
committerEric Wong <e@80x24.org>2019-04-18 06:07:24 +0000
commit7973bc101755b13a1381579c5ee60a716da6ffe1 (patch)
treece11296f73d80e27726e012bcc1dabed53059532 /lib
parentca5467dff19e404f7b2d263ce32357edbda1f795 (diff)
downloadpublic-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')
-rw-r--r--lib/PublicInbox/Git.pm18
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