X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=script%2Fpublic-inbox-init;h=c775eb3146ba485bb22f16a03d45506c1cef85cb;hb=refs%2Ftags%2Fv1.6.1;hp=b19c2321ae22a72202f3db2d6c986b24d3b91cdc;hpb=cda7ae7fb8da9eeb0e8aeb3df5a5ae8a9675102c;p=public-inbox.git diff --git a/script/public-inbox-init b/script/public-inbox-init index b19c2321..c775eb31 100755 --- a/script/public-inbox-init +++ b/script/public-inbox-init @@ -5,9 +5,8 @@ use strict; use v5.10.1; use Getopt::Long qw/:config gnu_getopt no_ignore_case auto_abbrev/; use Fcntl qw(:DEFAULT); -my $usage = 'public-inbox-init NAME INBOX_DIR HTTP_URL ADDRESS [ADDRESS..]'; my $help = < \$version, @@ -42,10 +42,11 @@ my %opts = ( 'skip-artnum=i' => \$skip_artnum, 'j|jobs=i' => \$jobs, 'ng|newsgroup=s' => \$ng, - 'help|?' => \$show_help, + 'skip-docdata' => \$skip_docdata, + 'help|h' => \$show_help, ); my $usage_cb = sub { - print STDERR "Usage: $usage\n"; + print STDERR $help; exit 1; }; GetOptions(%opts) or $usage_cb->(); @@ -137,8 +138,9 @@ close($fh) or die "failed to close $pi_config_tmp: $!\n"; my $pfx = "publicinbox.$name"; my @x = (qw/git config/, "--file=$pi_config_tmp"); -require Cwd; -$inboxdir = Cwd::abs_path($inboxdir); +require File::Spec; +$inboxdir = File::Spec->canonpath($inboxdir); + die "`\\n' not allowed in `$inboxdir'\n" if $inboxdir =~ /\n/s; if (-f "$inboxdir/inbox.lock") { if (!defined $version) { @@ -177,7 +179,18 @@ if (defined $jobs) { require PublicInbox::InboxWritable; $ibx = PublicInbox::InboxWritable->new($ibx, $creat_opt); +if ($skip_docdata) { + $ibx->{indexlevel} //= 'full'; # ensure init_inbox writes xdb + $ibx->{indexlevel} eq 'basic' and + die "--skip-docdata ignored with --indexlevel=basic\n"; + $ibx->{-skip_docdata} = $skip_docdata; +} $ibx->init_inbox(0, $skip_epoch, $skip_artnum); +require Cwd; +my $tmp = Cwd::abs_path($inboxdir); +defined($tmp) or die "failed to resolve $inboxdir: $!\n"; +$inboxdir = $tmp; +die "`\\n' not allowed in `$inboxdir'\n" if $inboxdir =~ /\n/s; # needed for git prior to v2.1.0 umask(0077) if defined $perm;