}
}
+sub filter_lss {
+ my ($self, $lei, $all) = @_;
+ my @outs = PublicInbox::LeiSavedSearch::list($lei);
+ if ($all eq 'local') {
+ $self->{o_local} = [ grep(!/$REMOTE_RE/, @outs) ];
+ } elsif ($all eq 'remote') {
+ $self->{o_remote} = [ grep(/$REMOTE_RE/, @outs) ];
+ } elsif ($all eq '') {
+ $self->{o_remote} = [ grep(/$REMOTE_RE/, @outs) ];
+ $self->{o_local} = [ grep(!/$REMOTE_RE/, @outs) ];
+ } else {
+ undef;
+ }
+}
+
sub lei_up {
my ($lei, @outs) = @_;
my $opt = $lei->{opt};
return $lei->fail("--all and @outs incompatible") if @outs;
defined($opt->{mua}) and return
$lei->fail('--all and --mua= are incompatible');
- @outs = PublicInbox::LeiSavedSearch::list($lei);
- if ($all eq 'local') {
- $self->{o_local} = [ grep(!/$REMOTE_RE/, @outs) ];
- } elsif ($all eq 'remote') {
- $self->{o_remote} = [ grep(/$REMOTE_RE/, @outs) ];
- } elsif ($all eq '') {
- $self->{o_remote} = [ grep(/$REMOTE_RE/, @outs) ];
- $self->{o_local} = [ grep(!/$REMOTE_RE/, @outs) ];
- } else {
+ filter_lss($self, $lei, $all) // return
$lei->fail("only --all=$all not understood");
- }
} elsif ($lei->{lse}) { # redispatched
scalar(@outs) == 1 or die "BUG: lse set w/ >1 out[@outs]";
return up1($lei, $outs[0]);
if ($lei->{auth}) { # start auth worker
require PublicInbox::NetWriter;
bless $lei->{net}, 'PublicInbox::NetWriter';
- $lei->{auth}->op_merge(my $ops = {}, $self, $lei);
- (my $op_c, $ops) = $lei->workers_start($self, 1, $ops);
- $lei->{wq1} = $self;
- $lei->wait_wq_events($op_c, $ops);
+ $lei->wq1_start($self);
# net_merge_all_done will fire when auth is done
} else {
redispatch_all($self, $lei); # see below