about summary refs log tree commit homepage
path: root/lib/PublicInbox
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2021-04-17 10:24:45 +0000
committerEric Wong <e@80x24.org>2021-04-17 20:16:42 +0000
commit74cac24c6238c73279a82f18c7a6f11d387756bb (patch)
tree0a615ec843f25f8dd37b65fccec8d5da0a188505 /lib/PublicInbox
parente002b3bef06e9b812e95f67fcf723a1aaf632dd7 (diff)
downloadpublic-inbox-74cac24c6238c73279a82f18c7a6f11d387756bb.tar.gz
We always represent --output destination directories with a
trailing slash to disambiguate directories from mbox filenames.
Therefore, we must use the trailing slash when mapping the
destination beck from the lei/saved-search/* directory.

"lei up" now relies exclusively on the users --output pathname
or URL for updates.  This ought to be less confusing since
pathnames in ~/.local/store/lei/saved-searches aren't ideal.
Diffstat (limited to 'lib/PublicInbox')
-rw-r--r--lib/PublicInbox/LeiSavedSearch.pm13
1 files changed, 8 insertions, 5 deletions
diff --git a/lib/PublicInbox/LeiSavedSearch.pm b/lib/PublicInbox/LeiSavedSearch.pm
index 932b2aa4..0f632d93 100644
--- a/lib/PublicInbox/LeiSavedSearch.pm
+++ b/lib/PublicInbox/LeiSavedSearch.pm
@@ -26,18 +26,21 @@ sub lss_dir_for ($$) {
         } else { # basename
                 @n = ($$dstref =~ m{([\w\-\.]+)/*\z});
                 $$dstref = $lei->rel2abs($$dstref);
+                $$dstref .= '/' if -d $$dstref;
         }
         push @n, sha256_hex($$dstref);
         $lei->share_path . '/saved-searches/' . join('-', @n);
 }
 
 sub new {
-        my ($cls, $lei, $dir) = @_;
+        my ($cls, $lei, $dst) = @_;
         my $self = bless { ale => $lei->ale }, $cls;
-        if (defined $dir) { # updating existing saved search via "lei up"
-                my $f = "$dir/lei.saved-search";
-                ((-f $f && -r _) || output2lssdir($self, $lei, \$dir, \$f)) or
-                        return $lei->fail("$f non-existent or unreadable");
+        my $dir;
+        if (defined $dst) { # updating existing saved search via "lei up"
+                my $f;
+                $dir = $dst;
+                output2lssdir($self, $lei, \$dir, \$f) or
+                        return $lei->fail("--save was not used with $dst");
                 $self->{-cfg} //= PublicInbox::Config::git_config_dump($f);
                 $self->{'-f'} = $f;
         } else { # new saved search "lei q --save"