]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/LEI.pm
treewide: use *nix-specific dirname regexps
[public-inbox.git] / lib / PublicInbox / LEI.pm
index 52c551cf998b7561d3b4a9cec57aa957a9502b3f..be4754df8d162448fe9a81b69093d3242084f6d2 100644 (file)
@@ -134,7 +134,7 @@ sub ale {
 sub index_opt {
        # TODO: drop underscore variants everywhere, they're undocumented
        qw(fsync|sync! jobs|j=i indexlevel|L=s compact
-       max_size|max-size=s sequential_shard|sequential-shard
+       max_size|max-size=s sequential-shard
        batch_size|batch-size=s skip-docdata)
 }
 
@@ -232,8 +232,10 @@ our %CMD = ( # sorted in order of importance/use:
        'remove imported messages from IMAP, Maildirs, and MH',
        qw(exact! all jobs:i indexed), @c_opt ],
 
-'add-watch' => [ 'LOCATION', 'watch for new messages and flag changes',
+'add-watch' => [ 'LOCATION...', 'watch for new messages and flag changes',
        qw(poll-interval=s state=s recursive|r), @c_opt ],
+'rm-watch' => [ 'LOCATION...', 'remove specified watch(es)',
+       qw(recursive|r), @c_opt ],
 'ls-watch' => [ '[FILTER...]', 'list active watches with numbers and status',
                qw(l z|0), @c_opt ],
 'pause-watch' => [ '[WATCH_NUMBER_OR_FILTER]', qw(all local remote), @c_opt ],
@@ -369,7 +371,7 @@ my %OPTDESC = (
        'do not index messages larger than SIZE (default: infinity)' ],
 'batch_size|batch-size=s' => [ 'SIZE',
        'flush changes to OS after given number of bytes (default: 1m)' ],
-'sequential_shard|sequential-shard' =>
+'sequential-shard' =>
        'index Xapian shards sequentially for slow storage',
 'skip-docdata' =>
        'drop compatibility w/ public-inbox <1.6 to save ~1.5% space',
@@ -554,7 +556,7 @@ sub _lei_atfork_child {
        }
        close $listener if $listener;
        undef $listener;
-       undef $dir_idle;
+       $dir_idle->force_close if $dir_idle;
        %PATH2CFG = ();
        $MDIR2CFGPATH = {};
        eval 'no warnings; undef $PublicInbox::LeiNoteEvent::to_flush';
@@ -796,7 +798,7 @@ sub _lei_cfg ($;$) {
                        delete $self->{cfg};
                        return bless {}, 'PublicInbox::Config';
                }
-               my (undef, $cfg_dir, undef) = File::Spec->splitpath($f);
+               my ($cfg_dir) = ($f =~ m!(.*?/)[^/]+\z!);
                -d $cfg_dir or mkpath($cfg_dir) or die "mkpath($cfg_dir): $!\n";
                open my $fh, '>>', $f or die "open($f): $!\n";
                @st = stat($fh) or die "fstat($f): $!\n";
@@ -1203,7 +1205,6 @@ sub lazy_start {
        }
        umask(077) // die("umask(077): $!");
        bind($listener, $addr) or die "bind($path): $!";
-       listen($listener, 1024) or die "listen: $!";
        $lk->lock_release;
        undef $lk;
        my @st = stat($path) or die "stat($path): $!";