about summary refs log tree commit homepage
path: root/lib/PublicInbox
diff options
context:
space:
mode:
Diffstat (limited to 'lib/PublicInbox')
-rw-r--r--lib/PublicInbox/Config.pm2
-rw-r--r--lib/PublicInbox/SearchIdx.pm8
2 files changed, 9 insertions, 1 deletions
diff --git a/lib/PublicInbox/Config.pm b/lib/PublicInbox/Config.pm
index 289c36a6..78586560 100644
--- a/lib/PublicInbox/Config.pm
+++ b/lib/PublicInbox/Config.pm
@@ -158,7 +158,7 @@ sub _fill {
 
         foreach my $k (qw(mainrepo filter url newsgroup
                         infourl watch watchheader httpbackendmax
-                        replyto feedmax nntpserver)) {
+                        replyto feedmax nntpserver indexlevel)) {
                 my $v = $self->{"$pfx.$k"};
                 $rv->{$k} = $v if defined $v;
         }
diff --git a/lib/PublicInbox/SearchIdx.pm b/lib/PublicInbox/SearchIdx.pm
index 8978914a..04e85306 100644
--- a/lib/PublicInbox/SearchIdx.pm
+++ b/lib/PublicInbox/SearchIdx.pm
@@ -47,6 +47,7 @@ sub git_unquote ($) {
 
 sub new {
         my ($class, $ibx, $creat, $part) = @_;
+        my $levels = qr/\A(?:full|medium|basic)\z/;
         my $mainrepo = $ibx; # for "public-inbox-index" w/o entry in config
         my $git_dir = $mainrepo;
         my ($altid, $git);
@@ -62,6 +63,13 @@ sub new {
                                 PublicInbox::AltId->new($ibx, $_);
                         } @$altid ];
                 }
+                if ($ibx->{indexlevel}) {
+                        if ($ibx->{indexlevel} =~ $levels) {
+                                $indexlevel = $ibx->{indexlevel};
+                        } else {
+                                die("Invalid indexlevel $ibx->{indexlevel}\n");
+                        }
+                }
         } else { # v1
                 $ibx = { mainrepo => $git_dir, version => 1 };
         }