about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/PublicInbox/Admin.pm9
-rwxr-xr-xscript/public-inbox-edit7
2 files changed, 6 insertions, 10 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";
diff --git a/script/public-inbox-edit b/script/public-inbox-edit
index 0accd7c1..b437b3c0 100755
--- a/script/public-inbox-edit
+++ b/script/public-inbox-edit
@@ -22,12 +22,11 @@ my @opt = qw(mid|m=s file|F=s raw);
 GetOptions($opt, @PublicInbox::AdminEdit::OPT, @opt) or
         die "bad command-line args\n$usage\n";
 
+my $cfg = eval { PublicInbox::Config->new };
 my $editor = $ENV{MAIL_EDITOR}; # e.g. "mutt -f"
 unless (defined $editor) {
         my $k = 'publicinbox.mailEditor';
-        if (my $cfg = PublicInbox::Admin::config()) {
-                $editor = $cfg->{lc($k)};
-        }
+        $editor = $cfg->{lc($k)} if $cfg;
         unless (defined $editor) {
                 warn "\`$k' not configured, trying \`git var GIT_EDITOR'\n";
                 chomp($editor = `git var GIT_EDITOR`);
@@ -41,7 +40,7 @@ if (defined $mid && defined $file) {
         die "the --mid and --file options are mutually exclusive\n";
 }
 
-my @ibxs = PublicInbox::Admin::resolve_inboxes(\@ARGV, $opt);
+my @ibxs = PublicInbox::Admin::resolve_inboxes(\@ARGV, $opt, $cfg);
 PublicInbox::AdminEdit::check_editable(\@ibxs);
 
 my $found = {}; # cid => [ [ibx, smsg] [, [ibx, smsg] ] ]