From: Eric Wong Date: Fri, 16 Apr 2021 23:10:29 +0000 (-0700) Subject: lei: saved searches keyed only by path/URL and format X-Git-Tag: v1.7.0~805 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=17244996655fcbc47fb54c915360657367366c46;p=public-inbox.git lei: saved searches keyed only by path/URL and format We want users to be able to edit and refine the query over time while using the same output destination. --- diff --git a/lib/PublicInbox/LeiSavedSearch.pm b/lib/PublicInbox/LeiSavedSearch.pm index fe8301d6..ebc63091 100644 --- a/lib/PublicInbox/LeiSavedSearch.pm +++ b/lib/PublicInbox/LeiSavedSearch.pm @@ -10,9 +10,8 @@ use PublicInbox::OverIdx; use PublicInbox::LeiSearch; use PublicInbox::Config; use PublicInbox::Spawn qw(run_die); -use PublicInbox::ContentHash qw(content_hash git_sha); -use PublicInbox::Eml; -use PublicInbox::Hval qw(to_filename); +use PublicInbox::ContentHash qw(git_sha); +use Digest::SHA qw(sha256_hex); sub new { my ($cls, $lei, $dir) = @_; @@ -24,11 +23,11 @@ sub new { $self->{-cfg} = PublicInbox::Config::git_config_dump($f); } else { # new saved search "lei q --save" my $saved_dir = $lei->share_path . '/saved-searches/'; - my (@name) = ($lei->{ovv}->{dst} =~ m{([\w\-\.]+)/*\z}); + my (@n) = ($lei->{ovv}->{dst} =~ m{([\w\-\.]+)/*\z}); my $q = $lei->{mset_opt}->{q_raw} // die 'BUG: {q_raw} missing'; - my $q_raw_str = ref($q) ? "@$q" : $q; - push @name, to_filename($q_raw_str); - $dir = $saved_dir . join('-', @name); + push @n, sha256_hex("$lei->{ovv}->{fmt}\0$lei->{ovv}->{dst}"); + + $dir = $saved_dir . join('-', @n); require File::Path; File::Path::make_path($dir); # raises on error $self->{'-f'} = "$dir/lei.saved-search";