]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/LEI.pm
lei init: split out into separate file
[public-inbox.git] / lib / PublicInbox / LEI.pm
index 478912cd7fd2948a36995752128c7990f64f19a9..fdb0bbcf2fe1ffb1afb73ebea5abfae4b3a2a0d9 100644 (file)
@@ -494,11 +494,11 @@ sub _delete_pkt_op { # OnDestroy callback to prevent leaks on die
 }
 
 sub pkt_op_pair {
-       my ($self, $ops) = @_;
+       my ($self) = @_;
        require PublicInbox::OnDestroy;
        require PublicInbox::PktOp;
        my $end = PublicInbox::OnDestroy->new($$, \&_delete_pkt_op, $self);
-       @$self{qw(pkt_op_c pkt_op_p)} = PublicInbox::PktOp->pair($ops);
+       @$self{qw(pkt_op_c pkt_op_p)} = PublicInbox::PktOp->pair;
        $end;
 }
 
@@ -512,14 +512,13 @@ sub workers_start {
                ($ops ? %$ops : ()),
        };
        $ops->{''} //= [ \&dclose, $lei ];
-       my $end = $lei->pkt_op_pair($ops);
+       my $end = $lei->pkt_op_pair;
        $wq->wq_workers_start($ident, $jobs, $lei->oldset, { lei => $lei });
        delete $lei->{pkt_op_p};
-       my $op = delete $lei->{pkt_op_c};
+       my $op_c = delete $lei->{pkt_op_c};
        @$end = ();
        $lei->event_step_init;
-       # oneshot needs $op, daemon-mode uses DS->EventLoop to handle $op
-       $lei->{oneshot} ? $op : undef;
+       ($op_c, $ops);
 }
 
 sub _help {
@@ -745,38 +744,6 @@ sub lei_config {
        x_it($self, $?) if $?;
 }
 
-sub lei_init {
-       my ($self, $dir) = @_;
-       my $cfg = _lei_cfg($self, 1);
-       my $cur = $cfg->{'leistore.dir'};
-       $dir //= store_path($self);
-       $dir = rel2abs($self, $dir);
-       my @cur = stat($cur) if defined($cur);
-       $cur = File::Spec->canonpath($cur // $dir);
-       my @dir = stat($dir);
-       my $exists = "# leistore.dir=$cur already initialized" if @dir;
-       if (@cur) {
-               if ($cur eq $dir) {
-                       _lei_store($self, 1)->done;
-                       return qerr($self, $exists);
-               }
-
-               # some folks like symlinks and bind mounts :P
-               if (@dir && "@cur[1,0]" eq "@dir[1,0]") {
-                       lei_config($self, 'leistore.dir', $dir);
-                       _lei_store($self, 1)->done;
-                       return qerr($self, "$exists (as $cur)");
-               }
-               return fail($self, <<"");
-E: leistore.dir=$cur already initialized and it is not $dir
-
-       }
-       lei_config($self, 'leistore.dir', $dir);
-       _lei_store($self, 1)->done;
-       $exists //= "# leistore.dir=$dir newly initialized";
-       return qerr($self, $exists);
-}
-
 sub lei_daemon_pid { puts shift, $$ }
 
 sub lei_daemon_kill {