diff options
author | Eric Wong <e@80x24.org> | 2022-12-01 11:21:32 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2022-12-02 08:07:41 +0000 |
commit | 7f70bf3c6aab60f494842504e1267e719515430b (patch) | |
tree | 7f56bd5cd06cf6c790fc68dc96b14e651af37399 /lib/PublicInbox/LeiXSearch.pm | |
parent | 3f7bd6ba4d30f16ef95af9121ad8fe7b47a4f5f7 (diff) | |
download | public-inbox-7f70bf3c6aab60f494842504e1267e719515430b.tar.gz |
While users may specify relative paths for convenience on the command-line, absolute paths are required for `lei up' since that (especially `lei up --all') could run from anywhere. Note that we need to do this when parsing the command-line options, since shortcuts for URL matching on URL path components are allowed for `lei q', and those same shortcuts may remain in effect across to `lei up' as the underlying external may be moved to a different URI host.
Diffstat (limited to 'lib/PublicInbox/LeiXSearch.pm')
-rw-r--r-- | lib/PublicInbox/LeiXSearch.pm | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/PublicInbox/LeiXSearch.pm b/lib/PublicInbox/LeiXSearch.pm index 8e195c4c..730df1f7 100644 --- a/lib/PublicInbox/LeiXSearch.pm +++ b/lib/PublicInbox/LeiXSearch.pm @@ -605,15 +605,19 @@ sub add_uri { require IO::Uncompress::Gunzip; require PublicInbox::LeiCurl; push @{$self->{remotes}}, $uri; + $uri; } else { warn "curl missing, ignoring $uri\n"; + undef; } } +# returns URI or PublicInbox::Inbox-like object sub prepare_external { my ($self, $loc, $boost) = @_; # n.b. already ordered by boost if (ref $loc) { # already a URI, or PublicInbox::Inbox-like object return add_uri($self, $loc) if $loc->can('scheme'); + # fall-through on Inbox-like objects } elsif ($loc =~ m!\Ahttps?://!) { require URI; return add_uri($self, URI->new($loc)); @@ -628,12 +632,13 @@ sub prepare_external { $loc = bless { inboxdir => $loc }, 'PublicInbox::Inbox'; } elsif (!-e $loc) { warn "W: $loc gone, perhaps run: lei forget-external $loc\n"; - return; + return undef; } else { warn "W: $loc ignored, unable to determine external type\n"; - return; + return undef; } push @{$self->{locals}}, $loc; + $loc; } sub _lcat_i { # LeiMailSync->each_src iterator callback |