about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rwxr-xr-xscript/public-inbox-init2
-rw-r--r--t/init.t5
2 files changed, 6 insertions, 1 deletions
diff --git a/script/public-inbox-init b/script/public-inbox-init
index 951338af..b8d71f35 100755
--- a/script/public-inbox-init
+++ b/script/public-inbox-init
@@ -53,6 +53,7 @@ PublicInbox::Lock::lock_acquire($lock_obj);
 
 # git-config will operate on this (and rename on success):
 my ($fh, $pi_config_tmp) = tempfile('pi-init-XXXXXXXX', DIR => $dir);
+my $cfg_tmp = UnlinkMe->new($pi_config_tmp);
 
 # Now, we grab another lock to use git-config(1) locking, so it won't
 # wait on the lock, unlike some of our internal flock()-based locks.
@@ -176,6 +177,7 @@ if (defined $perm) {
 
 rename $pi_config_tmp, $pi_config or
         die "failed to rename `$pi_config_tmp' to `$pi_config': $!\n";
+delete $cfg_tmp->{file};
 $auto_unlink->DESTROY;
 
 package UnlinkMe;
diff --git a/t/init.t b/t/init.t
index b8f17b5c..16581955 100644
--- a/t/init.t
+++ b/t/init.t
@@ -50,12 +50,15 @@ sub quiet_fail {
                 '-init did not unlink lock on failure');
 }
 {
+        my $env = { PI_DIR => "$tmpdir/.public-inbox/" };
         my $rdr = { 2 => \(my $err = '') };
         my $cmd = [ '-init', 'alist', "$tmpdir/a\nlist",
                    qw(http://example.com/alist alist@example.com) ];
-        ok(!run_script($cmd, undef, $rdr),
+        ok(!run_script($cmd, $env, $rdr),
                 'public-inbox-init rejects LF in inboxdir');
         like($err, qr/`\\n' not allowed in `/s, 'reported \\n');
+        is_deeply([glob("$tmpdir/.public-inbox/pi-init-*")], [],
+                'no junk files left behind');
 }
 
 SKIP: {