+my $help = <<EOF; # the following should fit w/o scrolling in 80x24 term:
+usage: public-inbox-xcpdb [options] <INBOX_DIR|EXTINDEX_DIR>
+
+ upgrade or reshard Xapian DB(s) used by public-inbox
+
+options:
+
+ --compact | -c run public-inbox-compact(1) after indexing
+ --all copy all configured inboxes
+ --reshard=NUM change number the number of shards
+ --jobs=NUM limit parallelism to JOBS count
+ --verbose | -v increase verbosity (may be repeated)
+ --sequential-shard copy+index Xapian shards sequentially (for slow HDD)
+
+index options (see public-inbox-index(1) man page for full description):
+
+ --no-fsync speed up indexing, risk corruption on power outage
+ --batch-size=BYTES flush changes to OS after a given number of bytes
+ --max-size=BYTES do not index messages larger than the given size
+
+See public-inbox-xcpdb(1) man page for full documentation.
+EOF
+my $opt = { quiet => -1, compact => 0, fsync => 1, -eidx_ok => 1 };
+GetOptions($opt, qw(
+ fsync|sync! compact|c reshard|R=i
+ max_size|max-size=s batch_size|batch-size=s
+ sequential-shard|seq-shard
+ jobs|j=i quiet|q verbose|v
+ blocksize|b=s no-full|n fuller|F
+ all C=s@ help|h)) or die $help;
+if ($opt->{help}) { print $help; exit 0 };
+