From: Eric Wong <e@80x24.org>
Date: Mon, 19 Apr 2021 08:52:10 +0000 (+0000)
Subject: lei: support unlinked/missing saved searches
X-Git-Tag: v1.7.0~790
X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=763c77082ecd34385ac48edc59aa6de52a472e75;p=public-inbox.git

lei: support unlinked/missing saved searches

It's conceivable a user will want to erase all previous
results but still rerun/refresh a search to get new results.
We probably won't support prune functionality, here, and
instead require explicit removal of saved searches.
---

diff --git a/lib/PublicInbox/LeiSavedSearch.pm b/lib/PublicInbox/LeiSavedSearch.pm
index d67622c9..94920a4e 100644
--- a/lib/PublicInbox/LeiSavedSearch.pm
+++ b/lib/PublicInbox/LeiSavedSearch.pm
@@ -61,11 +61,8 @@ sub list {
 	bless $cfg, 'PublicInbox::Config';
 	my $out = $cfg->get_all('lei.q.output') or return ();
 	map {;
-		if (s!\A(?:maildir|mh|mbox.+|mmdf):!!i) {
-			-e $_ ? $_ : (); # TODO auto-prune somewhere?
-		} else { # IMAP, maybe JMAP
-			$_;
-		}
+		s!\A(?:maildir|mh|mbox.+|mmdf):!!i;
+		$_;
 	} @$out
 }
 
diff --git a/t/lei-q-save.t b/t/lei-q-save.t
index 761814b4..4e6ed642 100644
--- a/t/lei-q-save.t
+++ b/t/lei-q-save.t
@@ -67,5 +67,12 @@ test_lei(sub {
 	lei_ok qw(_complete lei up);
 	like($lei_out, qr!^\Q$home/mbcl2\E$!sm, 'complete got mbcl2 output');
 	like($lei_out, qr!^\Q$home/md/\E$!sm, 'complete got maildir output');
+
+	unlink("$home/mbcl2") or xbail "unlink $!";
+	lei_ok qw(_complete lei up);
+	like($lei_out, qr!^\Q$home/mbcl2\E$!sm,
+		'mbcl2 output shown despite unlink');
+	lei_ok([qw(up mbcl2)], undef, { -C => $home, %$lei_opt });
+	ok(-f "$home/mbcl2"  && -s _ == 0, 'up recreates on missing output');
 });
 done_testing;