]> Sergey Matveev's repositories - public-inbox.git/commitdiff
feed: filter out each_recent_blob wrapper
authorEric Wong <e@80x24.org>
Tue, 8 Apr 2014 21:57:53 +0000 (21:57 +0000)
committerEric Wong <e@80x24.org>
Tue, 8 Apr 2014 21:57:53 +0000 (21:57 +0000)
We will need it for HTML indices, too.

lib/PublicInbox/Feed.pm

index 3ac771747b7ef077ac291e1cbae4f0600b8c5126..b77bbdfbc644b90608b0b9236a91088a16b497e9 100644 (file)
@@ -36,12 +36,21 @@ sub generate {
                updated => strftime(DATEFMT, gmtime),
        );
 
-       my @entries;
+       each_recent_blob($max, sub {
+               my ($add) = @_;
+               add_to_feed($feed_opts, $feed, $add, $top);
+       });
+       $feed->as_string;
+
+}
+
+sub each_recent_blob {
+       my ($max, $cb) = @_;
 
        # get recent messages
        # we could use git log -z, but, we already know ssoma will not
        # leave us with filenames with spaces in them..
-       my $cmd = "git log --no-color --raw -r --no-abbrev HEAD |";
+       my $cmd = "git log --no-notes --no-color --raw -r --no-abbrev HEAD |";
        my $pid = open my $log, $cmd or die "open `$cmd' pipe failed: $!\n";
        my %deleted;
        my $nr = 0;
@@ -49,7 +58,7 @@ sub generate {
                if ($line =~ /^:000000 100644 0{40} ([a-f0-9]{40})/) {
                        my $add = $1;
                        next if $deleted{$add};
-                       $nr += add_to_feed($feed_opts, $feed, $add, $top);
+                       $nr += $cb->($add);
                        last if $nr >= $max;
                } elsif ($line =~ /^:100644 000000 ([a-f0-9]{40}) 0{40}/) {
                        $deleted{$1} = 1;
@@ -57,8 +66,6 @@ sub generate {
        }
 
        close $log;
-
-       $feed->as_string;
 }
 
 # private functions below