about summary refs log tree commit homepage
path: root/lib
diff options
context:
space:
mode:
authorEric Wong <e@yhbt.net>2020-06-14 00:25:03 +0000
committerEric Wong <e@yhbt.net>2020-06-15 06:07:52 +0000
commit4042599799a3706d1b1c0589675b07cab610505a (patch)
treeca8cbd49ecbf6dd11ca4fd20e9fa275ec62a3886 /lib
parentfc6c7191daf71b8b1f6b45638ffcb1c6b2057636 (diff)
downloadpublic-inbox-4042599799a3706d1b1c0589675b07cab610505a.tar.gz
IMAP requires either the Email::Address::XS or Mail::Address
package (part of perl-MailTools RPM or libmailtools-perl deb);
and Email::Address::XS is not officially packaged for some older
distros, most notably CentOS 7.x.
Diffstat (limited to 'lib')
-rw-r--r--lib/PublicInbox/TestCommon.pm11
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/PublicInbox/TestCommon.pm b/lib/PublicInbox/TestCommon.pm
index 5e7dc8b0..a97125e5 100644
--- a/lib/PublicInbox/TestCommon.pm
+++ b/lib/PublicInbox/TestCommon.pm
@@ -72,7 +72,7 @@ sub require_mods {
         my @mods = @_;
         my $maybe = pop @mods if $mods[-1] =~ /\A[0-9]+\z/;
         my @need;
-        for my $mod (@mods) {
+        while (my $mod = shift(@mods)) {
                 if ($mod eq 'Search::Xapian') {
                         if (eval { require PublicInbox::Search } &&
                                 PublicInbox::Search::load_xapian()) {
@@ -83,6 +83,15 @@ sub require_mods {
                                 PublicInbox::SearchIdx::load_xapian_writable()){
                                         next;
                         }
+                } elsif (index($mod, '||') >= 0) { # "Foo||Bar"
+                        my $ok;
+                        for my $m (split(/\Q||\E/, $mod)) {
+                                eval "require $m";
+                                next if $@;
+                                $ok = $m;
+                                last;
+                        }
+                        next if $ok;
                 } else {
                         eval "require $mod";
                 }