From 399081a7c4424ede7155cebd8f5ac1bbb69bb436 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 8 Apr 2014 21:57:53 +0000 Subject: feed: filter out each_recent_blob wrapper We will need it for HTML indices, too. --- lib/PublicInbox/Feed.pm | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/lib/PublicInbox/Feed.pm b/lib/PublicInbox/Feed.pm index 3ac77174..b77bbdfb 100644 --- a/lib/PublicInbox/Feed.pm +++ b/lib/PublicInbox/Feed.pm @@ -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 -- cgit v1.2.3-24-ge0c7