From: Eric Wong Date: Fri, 16 Apr 2021 23:10:35 +0000 (-0700) Subject: lei q --save: clobber config file on repeats X-Git-Tag: v1.7.0~798 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;ds=sidebyside;h=74c0a24d49855321883f23decd687a1a866df24e;p=public-inbox.git lei q --save: clobber config file on repeats 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. --- diff --git a/lib/PublicInbox/Config.pm b/lib/PublicInbox/Config.pm index 26ac298e..603dad98 100644 --- a/lib/PublicInbox/Config.pm +++ b/lib/PublicInbox/Config.pm @@ -559,4 +559,13 @@ sub json { }; } +sub squote_maybe ($) { + my ($val) = @_; + if ($val =~ m{([^\w@\./,\%\+\-])}) { + $val =~ s/(['!])/'\\$1'/g; # '!' for csh + return "'$val'"; + } + $val; +} + 1; 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 <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; diff --git a/lib/PublicInbox/Reply.pm b/lib/PublicInbox/Reply.pm index 2a1066d2..79dd46a7 100644 --- a/lib/PublicInbox/Reply.pm +++ b/lib/PublicInbox/Reply.pm @@ -9,15 +9,9 @@ use URI::Escape qw/uri_escape_utf8/; use PublicInbox::Hval qw(ascii_html obfuscate_addrs mid_href); use PublicInbox::Address; use PublicInbox::MID qw(mid_clean); +use PublicInbox::Config; -sub squote_maybe ($) { - my ($val) = @_; - if ($val =~ m{([^\w@\./,\%\+\-])}) { - $val =~ s/(['!])/'\\$1'/g; # '!' for csh - return "'$val'"; - } - $val; -} +*squote_maybe = \&PublicInbox::Config::squote_maybe; sub add_addrs { my ($to, $cc, @addrs) = @_;