about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2022-11-28 05:32:14 +0000
committerEric Wong <e@80x24.org>2022-11-28 23:38:58 +0000
commit464c28e42bbbe54fc1d13629258eff31ecfc1689 (patch)
treea3ad51c7d6075067ee9ef54e65e5d619e19b8745
parenta38db0188e264c08e39354d8945cf1e7ac35e708 (diff)
downloadpublic-inbox-464c28e42bbbe54fc1d13629258eff31ecfc1689.tar.gz
Users may wish to keep objstore and manifest files at
a higher level to prevent direct access via HTTP(S),
so those relative paths probably make sense.
-rw-r--r--Documentation/public-inbox-clone.pod12
-rw-r--r--lib/PublicInbox/LeiMirror.pm2
2 files changed, 7 insertions, 7 deletions
diff --git a/Documentation/public-inbox-clone.pod b/Documentation/public-inbox-clone.pod
index 5e6a6fe9..9bcb9967 100644
--- a/Documentation/public-inbox-clone.pod
+++ b/Documentation/public-inbox-clone.pod
@@ -89,9 +89,9 @@ for testing.
 Enables space savings when the remote C<manifest.js.gz>
 includes C<forkgroup> entries as generated by grokmirror 2.x.
 
-If C<DIR> is not an absolute path, it is relative to the
-C<DESTINATION> directory.  If only C<--objstore=> is specified
-where C<DIR> is an empty string (C<"">), then C<objstore>
+If C<DIR> does not start with C</>, C<./>, or C<../>, it is treated
+as relative to the C<DESTINATION> directory.  If only C<--objstore=>
+is specified where C<DIR> is an empty string (C<"">), then C<objstore>
 (C<$DESTINATION/objstore>) is the implied value of C<DIR>.
 
 =item --manifest=FILE
@@ -99,9 +99,9 @@ where C<DIR> is an empty string (C<"">), then C<objstore>
 When incrementally updating an existing mirror, load the given
 manifest (typically C<manifest.js.gz>) to speed up updates.
 
-If C<FILE> is not an absolute path, it is relative to the
-C<DESTINATION> directory.  If only C<--manifest => is specified
-where C<FILE > is an empty string (C<"">), then C<manifest.js.gz>
+If C<FILE> does not start with C</>, C<./>, or C<../>, it is treated
+as relative to the C<DESTINATION> directory.  If only C<--manifest=>
+is specified where C<FILE> is an empty string (C<"">), then C<manifest.js.gz>
 (C<$DESTINATION/manifest.js.gz>) is the implied value of C<FILE>.
 
 =item -p
diff --git a/lib/PublicInbox/LeiMirror.pm b/lib/PublicInbox/LeiMirror.pm
index e0a212de..ec2ed557 100644
--- a/lib/PublicInbox/LeiMirror.pm
+++ b/lib/PublicInbox/LeiMirror.pm
@@ -1055,7 +1055,7 @@ sub do_mirror { # via wq_io_do or public-inbox-clone
                         my ($k) = (split(/\./, $default))[0];
                         my $v = $lei->{opt}->{$k} // next;
                         $v = $default if $v eq '';
-                        $v = "$self->{dst}/$v" if $v !~ m!\A/!;
+                        $v = "$self->{dst}/$v" if $v !~ m!\A\.{0,2}/!;
                         $self->{"-$k"} = $v;
                 }
                 local $LIVE = {};