use POSIX qw(dup2);
use IO::Socket::INET;
our @EXPORT = qw(tmpdir tcp_server tcp_connect require_git require_mods
- run_script start_script key2sub xsys xqx eml_load tick);
+ run_script start_script key2sub xsys xqx eml_load tick
+ have_xapian_compact);
sub eml_load ($) {
my ($path, $cb) = @_;
my $maybe = pop @mods if $mods[-1] =~ /\A[0-9]+\z/;
my @need;
while (my $mod = shift(@mods)) {
+ if ($mod eq 'json') {
+ $mod = 'Cpanel::JSON::XS||JSON::MaybeXS||'.
+ 'JSON||JSON::PP'
+ }
if ($mod eq 'Search::Xapian') {
if (eval { require PublicInbox::Search } &&
PublicInbox::Search::load_xapian()) {
PublicInboxTestProcess->new($pid, $tail_pid);
}
+sub have_xapian_compact () {
+ require PublicInbox::Spawn;
+ # $ENV{XAPIAN_COMPACT} is used by PublicInbox/Xapcmd.pm, too
+ PublicInbox::Spawn::which($ENV{XAPIAN_COMPACT} || 'xapian-compact');
+}
+
package PublicInboxTestProcess;
use strict;