* [PATCH 6/7] init: set a useful description
2021-09-12 7:47 5% [PATCH 0/7] new public-inbox-{clone,fetch} commands Eric Wong
@ 2021-09-12 7:47 7% ` Eric Wong
0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2021-09-12 7:47 UTC (permalink / raw)
To: meta
"Unnamed repository" for v1 inboxes was misleading, and having a
non-existent description for v2 was equally annoying, so set a
short description based on the primary address.
We remove descriptions when setting up new test inboxes to
preserve the behavior of the t/lei-mirror.t test case.
---
lib/PublicInbox/TestCommon.pm | 3 ++-
script/public-inbox-init | 6 ++++++
t/init.t | 3 +++
3 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/lib/PublicInbox/TestCommon.pm b/lib/PublicInbox/TestCommon.pm
index 2e3e9ecc..14dac03f 100644
--- a/lib/PublicInbox/TestCommon.pm
+++ b/lib/PublicInbox/TestCommon.pm
@@ -605,7 +605,8 @@ sub setup_public_inboxes () {
run_script([qw(-init --skip-docdata), "-V$V",
'--newsgroup', "t.v$V", "t$V",
"$test_home/t$V", "http://example.com/t$V",
- "t$V\@example.com" ]) or BAIL_OUT "init v$V";
+ "t$V\@example.com" ]) or xbail "init v$V";
+ unlink "$test_home/t$V/description" or xbail "unlink $!";
}
require PublicInbox::Config;
require PublicInbox::InboxWritable;
diff --git a/script/public-inbox-init b/script/public-inbox-init
index ced88235..78a4d3bd 100755
--- a/script/public-inbox-init
+++ b/script/public-inbox-init
@@ -246,3 +246,9 @@ if (defined $perm) {
rename $pi_config_tmp, $pi_config or
die "failed to rename `$pi_config_tmp' to `$pi_config': $!\n";
undef $auto_unlink; # trigger ->DESTROY
+
+my $f = "$inboxdir/description";
+if (sysopen $fh, $f, O_CREAT|O_EXCL|O_WRONLY) {
+ print $fh "public inbox for $address[0]\n" or die "print($f): $!";
+ close $fh or die "close($f): $!";
+}
diff --git a/t/init.t b/t/init.t
index efa3314d..752e5af9 100644
--- a/t/init.t
+++ b/t/init.t
@@ -99,6 +99,9 @@ sub quiet_fail {
$err = '';
ok(run_script($cmd, $env, $rdr), 'initializes non-existent hierarchy');
ok(-d "$tmpdir/a/b/c/d", 'directory created');
+ is(PublicInbox::Inbox::try_cat("$tmpdir/a/b/c/d/description"),
+ "public inbox for abcd\@example.com\n", 'description set');
+
open my $fh, '>', "$tmpdir/d" or BAIL_OUT "open: $!";
close $fh;
$cmd = [ '-init', 'd-f-conflict', "$tmpdir/d/f/conflict",
^ permalink raw reply related [relevance 7%]
* [PATCH 0/7] new public-inbox-{clone,fetch} commands
@ 2021-09-12 7:47 5% Eric Wong
2021-09-12 7:47 7% ` [PATCH 6/7] init: set a useful description Eric Wong
0 siblings, 1 reply; 2+ results
From: Eric Wong @ 2021-09-12 7:47 UTC (permalink / raw)
To: meta
Hopefully, these new commands make maintaining mirrors of a
single (or handful of) multi-epoch v2 inboxes easier and less
error-prone.
Unlike grokmirror:
* these commands do not require extra config files of any kind
* they only allow cloning/fetching a single inbox per-invocation
"description" files also default to something more meaningful
for both public-inbox-init and -clone.
PATCH 7/7 also begins laying the groundwork for a v1 => v2
migration path which doesn't involve existing mirrors
having to redownload everything.
Eric Wong (7):
lei_mirror: simplify error reporting
lei_mirror: fix error message
new public-inbox-{clone,fetch} commands
clone|lei_mirror: write description in mirrors
import: do not write a "description" file
init: set a useful description
fetch: use manifest.js.gz for v1
Documentation/public-inbox-clone.pod | 71 +++++++++++
Documentation/public-inbox-fetch.pod | 63 ++++++++++
MANIFEST | 5 +
lib/PublicInbox/Admin.pm | 8 ++
lib/PublicInbox/Fetch.pm | 172 +++++++++++++++++++++++++++
lib/PublicInbox/Import.pm | 3 -
lib/PublicInbox/LEI.pm | 6 +-
lib/PublicInbox/LeiMirror.pm | 167 ++++++++++++++++----------
lib/PublicInbox/TestCommon.pm | 3 +-
script/public-inbox-clone | 58 +++++++++
script/public-inbox-fetch | 35 ++++++
script/public-inbox-init | 6 +
t/init.t | 3 +
t/lei-mirror.t | 52 ++++++++
t/www_listing.t | 1 -
15 files changed, 585 insertions(+), 68 deletions(-)
create mode 100644 Documentation/public-inbox-clone.pod
create mode 100644 Documentation/public-inbox-fetch.pod
create mode 100644 lib/PublicInbox/Fetch.pm
create mode 100755 script/public-inbox-clone
create mode 100755 script/public-inbox-fetch
^ permalink raw reply [relevance 5%]
Results 1-2 of 2 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2021-09-12 7:47 5% [PATCH 0/7] new public-inbox-{clone,fetch} commands Eric Wong
2021-09-12 7:47 7% ` [PATCH 6/7] init: set a useful description Eric Wong
Code repositories for project(s) associated with this public inbox
https://80x24.org/public-inbox.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).