use PublicInbox::SHA qw(sha256_hex);
use PublicInbox::Search qw(xap_terms);
use PublicInbox::SearchIdx qw(add_val);
-use PublicInbox::Config;
+use PublicInbox::Config qw(glob2re);
use PublicInbox::Spawn qw(spawn popen_rd);
use PublicInbox::OnDestroy;
use Socket qw(MSG_EOR);
}
warn "E: canonicalized and attempting to continue\n";
}
+ if (defined(my $excl = $self->{-opt}->{exclude})) {
+ my $re = '(?:'.join('\\z|', map {
+ glob2re($_) // qr/\A\Q$_\E/
+ } @$excl).'\\z)';
+ @{$self->{git_dirs}} = grep {
+ $_ =~ /$re/ ? (warn("# excluding $_\n"), 0) : 1;
+ } @{$self->{git_dirs}};
+ }
local $self->{nchange} = 0;
local $LIVE_JOBS = $self->{-opt}->{jobs} ||
PublicInbox::IPC::detect_nproc() || 2;
my $opt = { fsync => 1, scan => 1 }; # --no-scan is hidden
GetOptions($opt, qw(quiet|q verbose|v+ reindex jobs|j=i fsync|sync! dangerous
indexlevel|index-level|L=s batch_size|batch-size=s
- project-list=s
+ project-list=s exclude=s@
d=s update|u scan! prune dry-run|n C=s@ help|h))
or die $help;
if ($opt->{help}) { print $help; exit 0 };