about summary refs log tree commit homepage
path: root/lib/PublicInbox/LeiSavedSearch.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2021-04-16 16:10:35 -0700
committerEric Wong <e@80x24.org>2021-04-17 10:00:45 +0000
commit74c0a24d49855321883f23decd687a1a866df24e (patch)
treed832b2e99a364b98f258f845c29aa60c33e1492d /lib/PublicInbox/LeiSavedSearch.pm
parent1e51bc86dcdc25363575f6e9b35d954c65dec795 (diff)
downloadpublic-inbox-74c0a24d49855321883f23decd687a1a866df24e.tar.gz
A user may wish to clobber/refine existing search parameters
by issuing "lei q --save" again.  Support that by overwriting
the lei.saved-search state file entirely.

We continue to preserve over.sqlite3 for deduplication purposes.

This way, we don't get something redundant like:

	[lei]
		q = term1
		q = term2
		q = term1
		q = term2
		q = term3

...whenever a user wants to refine their search.  Instead,
we'll just have:

	[lei]
		q = term1
		q = term2
		q = term3

On the second go.
Diffstat (limited to 'lib/PublicInbox/LeiSavedSearch.pm')
-rw-r--r--lib/PublicInbox/LeiSavedSearch.pm10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/PublicInbox/LeiSavedSearch.pm b/lib/PublicInbox/LeiSavedSearch.pm
index a8bf470b..932b2aa4 100644
--- a/lib/PublicInbox/LeiSavedSearch.pm
+++ b/lib/PublicInbox/LeiSavedSearch.pm
@@ -13,6 +13,8 @@ use PublicInbox::Spawn qw(run_die);
 use PublicInbox::ContentHash qw(git_sha);
 use Digest::SHA qw(sha256_hex);
 
+*squote_maybe = \&PublicInbox::Config::squote_maybe;
+
 sub lss_dir_for ($$) {
         my ($lei, $dstref) = @_;
         my @n;
@@ -44,7 +46,13 @@ sub new {
                 require File::Path;
                 File::Path::make_path($dir); # raises on error
                 $self->{-cfg} = {};
-                $self->{'-f'} = "$dir/lei.saved-search";
+                my $f = $self->{'-f'} = "$dir/lei.saved-search";
+                open my $fh, '>', $f or return $lei->fail("open $f: $!");
+                my $sq_dst = squote_maybe($dst);
+                print $fh <<EOM or return $lei->fail("print $f: $!");
+; to refresh with new results, run: lei up $sq_dst
+EOM
+                close $fh or return $lei->fail("close $f: $!");
                 my $q = $lei->{mset_opt}->{q_raw} // die 'BUG: {q_raw} missing';
                 if (ref $q) {
                         cfg_set($self, '--add', 'lei.q', $_) for @$q;