user/dev discussion of public-inbox itself
 help / color / mirror / code / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* [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).