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 0/3] lei *-external: split off into separate files
@ 2021-09-25  8:49  7% Eric Wong
  2021-09-25  8:49  6% ` [PATCH 3/3] lei ls-external: split into separate file Eric Wong
  0 siblings, 1 reply; 2+ results
From: Eric Wong @ 2021-09-25  8:49 UTC (permalink / raw)
  To: meta

Some of the early parts of lei predated the current autoloading
using lazy_cb.  None of these commands are expected to be
frequently used, so wasting memory on them is unnecessary.

Eric Wong (3):
  lei forget-external: split into separate file
  lei add-external: split into separate file
  lei ls-external: split into separate file

 MANIFEST                             |   3 +
 lib/PublicInbox/LeiAddExternal.pm    |  72 ++++++++++++++
 lib/PublicInbox/LeiExternal.pm       | 140 +--------------------------
 lib/PublicInbox/LeiForgetExternal.pm |  46 +++++++++
 lib/PublicInbox/LeiLsExternal.pm     |  32 ++++++
 lib/PublicInbox/LeiMirror.pm         |   3 +-
 lib/PublicInbox/LeiQuery.pm          |   6 +-
 7 files changed, 161 insertions(+), 141 deletions(-)
 create mode 100644 lib/PublicInbox/LeiAddExternal.pm
 create mode 100644 lib/PublicInbox/LeiForgetExternal.pm
 create mode 100644 lib/PublicInbox/LeiLsExternal.pm


^ permalink raw reply	[relevance 7%]

* [PATCH 3/3] lei ls-external: split into separate file
  2021-09-25  8:49  7% [PATCH 0/3] lei *-external: split off into separate files Eric Wong
@ 2021-09-25  8:49  6% ` Eric Wong
  0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2021-09-25  8:49 UTC (permalink / raw)
  To: meta

This was written before we had auto-loading and rarely used.
---
 MANIFEST                         |  1 +
 lib/PublicInbox/LeiExternal.pm   | 26 +-------------------------
 lib/PublicInbox/LeiLsExternal.pm | 32 ++++++++++++++++++++++++++++++++
 3 files changed, 34 insertions(+), 25 deletions(-)
 create mode 100644 lib/PublicInbox/LeiLsExternal.pm

diff --git a/MANIFEST b/MANIFEST
index 8db9cdc791bb..3e942855127f 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -230,6 +230,7 @@ lib/PublicInbox/LeiInit.pm
 lib/PublicInbox/LeiInput.pm
 lib/PublicInbox/LeiInspect.pm
 lib/PublicInbox/LeiLcat.pm
+lib/PublicInbox/LeiLsExternal.pm
 lib/PublicInbox/LeiLsLabel.pm
 lib/PublicInbox/LeiLsMailSource.pm
 lib/PublicInbox/LeiLsMailSync.pm
diff --git a/lib/PublicInbox/LeiExternal.pm b/lib/PublicInbox/LeiExternal.pm
index 5a54cc19281e..701d1ad53adf 100644
--- a/lib/PublicInbox/LeiExternal.pm
+++ b/lib/PublicInbox/LeiExternal.pm
@@ -50,7 +50,7 @@ my %re_map = ( '*' => '[^/]*?', '?' => '[^/]',
 		'[' => '[', ']' => ']', ',' => ',' );
 
 sub glob2re {
-	my $re = $_[-1];
+	my $re = $_[-1]; # $_[0] may be $lei
 	my $p = '';
 	my $in_bracket = 0;
 	my $qm = 0;
@@ -108,30 +108,6 @@ sub get_externals {
 	();
 }
 
-# TODO: does this need JSON output?
-sub lei_ls_external {
-	my ($self, $filter) = @_;
-	my $opt = $self->{opt};
-	my $do_glob = !$opt->{globoff}; # glob by default
-	my ($OFS, $ORS) = $opt->{z} ? ("\0", "\0\0") : (" ", "\n");
-	$filter //= '*';
-	my $re = $do_glob ? glob2re($filter) : undef;
-	$re //= index($filter, '/') < 0 ?
-			qr!/\Q$filter\E/?\z! : # exact basename match
-			qr/\Q$filter\E/; # grep -F semantics
-	my @ext = externals_each($self, my $boost = {});
-	@ext = $opt->{'invert-match'} ? grep(!/$re/, @ext)
-					: grep(/$re/, @ext);
-	if ($opt->{'local'} && !$opt->{remote}) {
-		@ext = grep(!m!\A[a-z\+]+://!, @ext);
-	} elsif ($opt->{remote} && !$opt->{'local'}) {
-		@ext = grep(m!\A[a-z\+]+://!, @ext);
-	}
-	for my $loc (@ext) {
-		$self->out($loc, $OFS, 'boost=', $boost->{$loc}, $ORS);
-	}
-}
-
 # returns an anonymous sub which returns an array of potential results
 sub complete_url_prepare {
 	my $argv = $_[-1]; # $_[0] may be $lei
diff --git a/lib/PublicInbox/LeiLsExternal.pm b/lib/PublicInbox/LeiLsExternal.pm
new file mode 100644
index 000000000000..dd2eb2e7d16e
--- /dev/null
+++ b/lib/PublicInbox/LeiLsExternal.pm
@@ -0,0 +1,32 @@
+# Copyright (C) all contributors <meta@public-inbox.org>
+# License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
+
+# "lei ls-external" command
+package PublicInbox::LeiLsExternal;
+use strict;
+use v5.10.1;
+
+# TODO: does this need JSON output?
+sub lei_ls_external {
+	my ($lei, $filter) = @_;
+	my $do_glob = !$lei->{opt}->{globoff}; # glob by default
+	my ($OFS, $ORS) = $lei->{opt}->{z} ? ("\0", "\0\0") : (" ", "\n");
+	$filter //= '*';
+	my $re = $do_glob ? $lei->glob2re($filter) : undef;
+	$re //= index($filter, '/') < 0 ?
+			qr!/\Q$filter\E/?\z! : # exact basename match
+			qr/\Q$filter\E/; # grep -F semantics
+	my @ext = $lei->externals_each(my $boost = {});
+	@ext = $lei->{opt}->{'invert-match'} ? grep(!/$re/, @ext)
+					: grep(/$re/, @ext);
+	if ($lei->{opt}->{'local'} && !$lei->{opt}->{remote}) {
+		@ext = grep(!m!\A[a-z\+]+://!, @ext);
+	} elsif ($lei->{opt}->{remote} && !$lei->{opt}->{'local'}) {
+		@ext = grep(m!\A[a-z\+]+://!, @ext);
+	}
+	for my $loc (@ext) {
+		$lei->out($loc, $OFS, 'boost=', $boost->{$loc}, $ORS);
+	}
+}
+
+1;

^ permalink raw reply related	[relevance 6%]

Results 1-2 of 2 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2021-09-25  8:49  7% [PATCH 0/3] lei *-external: split off into separate files Eric Wong
2021-09-25  8:49  6% ` [PATCH 3/3] lei ls-external: split into separate file 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).