]> Sergey Matveev's repositories - public-inbox.git/blob - public-inbox-index
9cfcadc2df5d65bff8da98334d310f9f1797d06c
[public-inbox.git] / public-inbox-index
1 #!/usr/bin/perl -w
2 # Copyright (C) 2015, all contributors (git clone git://80x24.org/public-inbox)
3 # License: AGPLv3 or later (https://www.gnu.org/licenses/agpl-3.0.txt)
4 # Basic tool to create a Xapian search index for a git repository
5 # configured for public-inbox.
6 # Usage with libeatmydata <https://www.flamingspork.com/projects/libeatmydata/>
7 # highly recommended: eatmydata public-inbox-index GIT_DIR
8
9 use strict;
10 use warnings;
11 my $usage = "public-inbox-index GIT_DIR";
12 use PublicInbox::Config;
13 use PublicInbox::Search;
14 use PublicInbox::GitCatFile;
15
16 sub usage { print STDERR "Usage: $usage\n"; exit 1 }
17 if (@ARGV) {
18         foreach my $dir (@ARGV) {
19                 index_dir($dir);
20         }
21 };
22
23 sub index_dir {
24         my ($git_dir) = @_;
25         -d $git_dir or die "$git_dir does not appear to be a git repository\n";
26         my $git = PublicInbox::GitCatFile->new($git_dir);
27         my $s = PublicInbox::Search->new($git_dir, 1);
28         $s->index_sync($git);
29 }