X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=script%2Fpublic-inbox-init;h=2f33c9efe67d1f689c47c62408efc6b8c3789d5c;hb=3d41aa23f35501ca92aab8aa42980fa73f7fa74f;hp=ca0f9ddfa8fe0de98a6ec0498b6477d348553cdb;hpb=f850effe0baef8a37ad2eef3ef581b79539cc304;p=public-inbox.git diff --git a/script/public-inbox-init b/script/public-inbox-init index ca0f9ddf..2f33c9ef 100755 --- a/script/public-inbox-init +++ b/script/public-inbox-init @@ -1,6 +1,6 @@ #!/usr/bin/perl -w -# Copyright (C) 2014-2015 all contributors -# License: AGPLv3 or later (https://www.gnu.org/licenses/agpl-3.0.txt) +# Copyright (C) 2014-2018 all contributors +# License: AGPL-3.0+ # # Initializes a public-inbox, basically a wrapper for git-init(1) use strict; @@ -28,6 +28,11 @@ mkpath($dir); # will croak on fatal errors my ($fh, $filename) = tempfile('pi-init-XXXXXXXX', DIR => $dir); if (-e $pi_config) { open(my $oh, '<', $pi_config) or die "unable to read $pi_config: $!\n"; + my @st = stat($oh); + my $perm = $st[2]; + defined $perm or die "(f)stat failed on $pi_config: $!\n"; + chmod($perm & 07777, $fh) or + die "(f)chmod failed on future $pi_config: $!\n"; my $old; { local $/; @@ -43,10 +48,10 @@ if (-e $pi_config) { foreach my $addr (@address) { my $found = $cfg->lookup($addr); if ($found) { - if ($found->{inbox} ne $name) { + if ($found->{name} ne $name) { print STDERR "`$addr' already defined for ", - "`$found->{inbox}',\n", + "`$found->{name}',\n", "does not match intend `$name'\n"; $conflict = 1; } else { @@ -63,6 +68,10 @@ my $pfx = "publicinbox.$name"; my @x = (qw/git config/, "--file=$filename"); $git_dir = abs_path($git_dir); x(qw(git init -q --bare), $git_dir); + +# set a reasonable default: +x(qw/git config/, "--file=$git_dir/config", 'repack.writeBitmaps', 'true'); + foreach my $addr (@address) { next if $seen{lc($addr)}; x(@x, "--add", "$pfx.address", $addr);