public-inbox-learn | 10 ++++++++++ public-inbox-mda | 17 +++++++++++++++++ diff --git a/public-inbox-learn b/public-inbox-learn index d3a05abe4cfcb1e17d7d37532343dd756d336961..7f525f558f5d17b26b2c21742bab48631b984a08 100755 --- a/public-inbox-learn +++ b/public-inbox-learn @@ -76,5 +76,15 @@ } if (!run([qw(spamc -L), $train], \$in, @output)) { $err = 1; } + + $err or eval { + require PublicInbox::Search; + require PublicInbox::GitCatFile; + my $git = PublicInbox::GitCatFile->new($git_dir); + umask 0022; # XXX FIXME use git config core.sharedRepository + my $s = PublicInbox::Search->new($git_dir, 1); + $s->index_sync($git); + }; } + exit $err; diff --git a/public-inbox-mda b/public-inbox-mda index 4348cb244510113a2cb40d0ca8e5eac0e9be13cb..46a24a14b8df80ab9b084e784a78deedc0bda2d9 100755 --- a/public-inbox-mda +++ b/public-inbox-mda @@ -47,6 +47,11 @@ $filter->simple($msg); my ($name, $email, $date) = PublicInbox::MDA->author_info($msg); + + END { + search_index_sync($main_repo) if ($? == 0); + }; + local $ENV{GIT_AUTHOR_NAME} = $name; local $ENV{GIT_AUTHOR_EMAIL} = $email; local $ENV{GIT_AUTHOR_DATE} = $date; @@ -79,3 +84,15 @@ }; return ($@ || $? || !defined($$out) || length($$out) == 0) ? 0 : 1; } + +sub search_index_sync { + my ($git_dir) = @_; + eval { + require PublicInbox::Search; + require PublicInbox::GitCatFile; + my $git = PublicInbox::GitCatFile->new($git_dir); + umask 0022; # XXX FIXME use git config core.sharedRepository + my $s = PublicInbox::Search->new($git_dir, 1); + $s->index_sync($git); + }; +}