about summary refs log tree commit homepage
path: root/lib/PublicInbox/Admin.pm
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2019-11-15 09:50:34 +0000
committerEric Wong <e@80x24.org>2019-11-16 11:05:23 +0000
commit321defd4c722ae897fc99e10ce8d05515a97e91f (patch)
tree35a0a6f985abaa46caf91c3eaf6f596be252f617 /lib/PublicInbox/Admin.pm
parent10fad7e1cf3eb0a4874afa1cb5ddb3d75afeec7d (diff)
downloadpublic-inbox-321defd4c722ae897fc99e10ce8d05515a97e91f.tar.gz
PublicInbox::Admin::config() just adds an extra layer of
indirection which we barely rely on.  So get rid of this
global variable and make it easier to run tests in the
future without relying on global state.
Diffstat (limited to 'lib/PublicInbox/Admin.pm')
-rw-r--r--lib/PublicInbox/Admin.pm9
1 files changed, 3 insertions, 6 deletions
diff --git a/lib/PublicInbox/Admin.pm b/lib/PublicInbox/Admin.pm
index d2a0d06b..dddeeae9 100644
--- a/lib/PublicInbox/Admin.pm
+++ b/lib/PublicInbox/Admin.pm
@@ -9,7 +9,6 @@ use warnings;
 use Cwd 'abs_path';
 use base qw(Exporter);
 our @EXPORT_OK = qw(resolve_repo_dir);
-my $CFG; # all the admin stuff is a singleton
 require PublicInbox::Config;
 
 sub resolve_repo_dir {
@@ -80,14 +79,12 @@ sub unconfigured_ibx ($$) {
         });
 }
 
-sub config () { $CFG //= eval { PublicInbox::Config->new } }
-
-sub resolve_inboxes ($;$) {
-        my ($argv, $opt) = @_;
+sub resolve_inboxes ($;$$) {
+        my ($argv, $opt, $cfg) = @_;
         require PublicInbox::Inbox;
         $opt ||= {};
 
-        my $cfg = config();
+        $cfg //= eval { PublicInbox::Config->new };
         if ($opt->{all}) {
                 my $cfgfile = PublicInbox::Config::default_file();
                 $cfg or die "--all specified, but $cfgfile not readable\n";