about summary refs log tree commit homepage
path: root/lib/PublicInbox/InboxWritable.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/PublicInbox/InboxWritable.pm')
-rw-r--r--lib/PublicInbox/InboxWritable.pm21
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/PublicInbox/InboxWritable.pm b/lib/PublicInbox/InboxWritable.pm
index 752f1997..e97c7e2d 100644
--- a/lib/PublicInbox/InboxWritable.pm
+++ b/lib/PublicInbox/InboxWritable.pm
@@ -298,4 +298,25 @@ sub warn_ignore_cb {
         }
 }
 
+# v2+ only
+sub git_dir_n { "$_[0]->{inboxdir}/git/$_[1].git" }
+
+# v2+ only
+sub git_dir_latest {
+        my ($self, $max) = @_;
+        $$max = -1;
+        my $pfx = "$self->{inboxdir}/git";
+        return unless -d $pfx;
+        my $latest;
+        opendir my $dh, $pfx or die "opendir $pfx: $!\n";
+        while (defined(my $git_dir = readdir($dh))) {
+                $git_dir =~ m!\A([0-9]+)\.git\z! or next;
+                if ($1 > $$max) {
+                        $$max = $1;
+                        $latest = "$pfx/$git_dir";
+                }
+        }
+        $latest;
+}
+
 1;