]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/LEI.pm
lei: do not access {sock} after SIGPIPE
[public-inbox.git] / lib / PublicInbox / LEI.pm
index 43baeeb3d51c910f4bb1a61a7e3239dc994c1471..78b49a3bc1afca5d837884cf0cf6ac1a24b5fa77 100644 (file)
@@ -179,7 +179,7 @@ our %CMD = ( # sorted in order of importance/use:
 
 'up' => [ 'OUTPUT...|--all', 'update saved search',
        qw(jobs|j=s lock=s@ alert=s@ mua=s verbose|v+ exclude=s@
-       remote-fudge-time=s all:s remote! local! external!), @c_opt ],
+       remote-fudge-time=s all:s remote! local! external!), @net_opt, @c_opt ],
 
 'lcat' => [ '--stdin|MSGID_OR_URL...', 'display local copy of message(s)',
        'stdin|', # /|\z/ must be first for lone dash
@@ -202,7 +202,7 @@ our %CMD = ( # sorted in order of importance/use:
 
 'mail-diff' => [ '--stdin|LOCATION...', 'diff the contents of emails',
        'stdin|', # /|\z/ must be first for lone dash
-       qw(verbose|v+ color:s no-color raw-header),
+       qw(verbose|v+ in-format|F=s color:s no-color raw-header),
        @diff_opt, @net_opt, @c_opt ],
 
 'add-external' => [ 'LOCATION',
@@ -215,15 +215,15 @@ our %CMD = ( # sorted in order of importance/use:
 'ls-mail-sync' => [ '[FILTER]', 'list mail sync folders',
                qw(z|0 globoff|g invert-match|v local remote), @c_opt ],
 'ls-mail-source' => [ 'URL', 'list IMAP or NNTP mail source folders',
-               qw(z|0 ascii l pretty url), @c_opt ],
+               qw(z|0 ascii l pretty url), @net_opt, @c_opt ],
 'forget-external' => [ 'LOCATION...|--prune',
        'exclude further results from a publicinbox|extindex',
        qw(prune), @c_opt ],
 
 'ls-search' => [ '[PREFIX]', 'list saved search queries',
                qw(format|f=s pretty l ascii z|0), @c_opt ],
-'forget-search' => [ 'OUTPUT...', 'forget a saved search',
-               qw(verbose|v+), @c_opt ],
+'forget-search' => [ 'OUTPUT...|--prune', 'forget a saved search',
+               qw(verbose|v+ prune:s), @c_opt ],
 'edit-search' => [ 'OUTPUT', "edit saved search via `git config --edit'",
                        @c_opt ],
 'rm' => [ '--stdin|LOCATION...',
@@ -265,7 +265,8 @@ our %CMD = ( # sorted in order of importance/use:
 'forget-mail-sync' => [ 'LOCATION...',
        'forget sync information for a mail folder', @c_opt ],
 'refresh-mail-sync' => [ 'LOCATION...|--all',
-       'prune dangling sync data for a mail folder', 'all:s', @c_opt ],
+       'prune dangling sync data for a mail folder', 'all:s',
+               @net_opt, @c_opt ],
 'export-kw' => [ 'LOCATION...|--all',
        'one-time export of keywords of sync sources',
        qw(all:s mode=s), @net_opt, @c_opt ],
@@ -273,9 +274,9 @@ our %CMD = ( # sorted in order of importance/use:
        'one-time conversion from URL or filesystem to another format',
        qw(stdin| in-format|F=s out-format|f=s output|mfolder|o=s lock=s@ kw!),
        @net_opt, @c_opt ],
-'p2q' => [ 'FILE|COMMIT_OID|--stdin',
+'p2q' => [ 'LOCATION_OR_COMMIT...|--stdin',
        "use a patch to generate a query for `lei q --stdin'",
-       qw(stdin| want|w=s@ uri debug), @c_opt ],
+       qw(stdin| in-format|F=s want|w=s@ uri debug), @net_opt, @c_opt ],
 'config' => [ '[...]', sub {
                'git-config(1) wrapper for '._config_path($_[0]);
        }, qw(config-file|system|global|file|f=s), # for conflict detection
@@ -353,6 +354,7 @@ my %OPTDESC = (
 
 'want|w=s@' => [ 'PREFIX|dfpost|dfn', # common ones in help...
                'search prefixes to extract (default: dfpost7)' ],
+'uri   p2q' => [ 'URI escape output' ],
 
 'alert=s@' => ['CMD,:WINCH,:bell,<any command>',
        'run command(s) or perform ops when done writing to output ' .
@@ -1125,7 +1127,7 @@ sub event_step {
        local %ENV = %{$self->{env}};
        local $current_lei = $self;
        eval {
-               my @fds = $recv_cmd->($self->{sock}, my $buf, 4096);
+               my @fds = $recv_cmd->($self->{sock} // return, my $buf, 4096);
                if (scalar(@fds) == 1 && !defined($fds[0])) {
                        return if $! == EAGAIN;
                        die "recvmsg: $!" if $! != ECONNRESET;