From: Eric Wong <e@80x24.org>
To: meta@public-inbox.org
Subject: [PATCH 04/10] script/*: fold $usage into $help, support `-h' instead of -?
Date: Tue, 1 Sep 2020 01:15:01 +0000 [thread overview]
Message-ID: <20200901011507.1643-5-e@80x24.org> (raw)
In-Reply-To: <20200901011507.1643-1-e@80x24.org>
`-h' doesn't conflict with anything, and some users (including
git users) may be more accustomed to using it rather than the
rarely-seen-outside-of-Getopt::Long `-?' switch.
We can also rely on the GetOptions() function to emit a proper
error message instead of just "bad command-line args".
---
script/public-inbox-compact | 9 ++++-----
script/public-inbox-convert | 14 +++++---------
script/public-inbox-index | 10 ++++------
script/public-inbox-init | 7 +++----
script/public-inbox-xcpdb | 8 +++-----
5 files changed, 19 insertions(+), 29 deletions(-)
diff --git a/script/public-inbox-compact b/script/public-inbox-compact
index a6bb62bd..dfebac1c 100755
--- a/script/public-inbox-compact
+++ b/script/public-inbox-compact
@@ -4,10 +4,9 @@
use strict;
use v5.10.1;
use Getopt::Long qw(:config gnu_getopt no_ignore_case auto_abbrev);
-my $usage = 'public-inbox-compact INBOX_DIR';
my $opt = { compact => 1, -coarse_lock => 1 };
my $help = <<EOF; # the following should fit w/o scrolling in 80x24 term:
-Usage: $usage
+usage: public-inbox-compact INBOX_DIR
Compact Xapian DBs in an inbox
@@ -18,10 +17,10 @@ options:
See public-inbox-compact(1) man page for full documentation.
EOF
-GetOptions($opt, qw(all help|?),
+GetOptions($opt, qw(all help|h),
# compact options:
qw(jobs|j=i quiet|q blocksize|b=s no-full|n fuller|F),
-) or die "bad command-line args\n$usage\n";
+) or die $help;
if ($opt->{help}) { print $help; exit 0 };
require PublicInbox::Admin;
@@ -31,7 +30,7 @@ PublicInbox::Admin::progress_prepare($opt);
require PublicInbox::InboxWritable;
require PublicInbox::Xapcmd;
my @ibxs = PublicInbox::Admin::resolve_inboxes(\@ARGV, $opt);
-unless (@ibxs) { print STDERR "Usage: $usage\n"; exit 1 }
+unless (@ibxs) { print STDERR $help; exit 1 }
foreach (@ibxs) {
my $ibx = PublicInbox::InboxWritable->new($_);
PublicInbox::Xapcmd::run($ibx, 'compact', $opt);
diff --git a/script/public-inbox-convert b/script/public-inbox-convert
index 4ff198d1..017411fb 100755
--- a/script/public-inbox-convert
+++ b/script/public-inbox-convert
@@ -4,9 +4,8 @@
use strict;
use v5.10.1;
use Getopt::Long qw(:config gnu_getopt no_ignore_case auto_abbrev);
-my $usage = 'Usage: public-inbox-convert [options] OLD NEW';
my $help = <<EOF; # the following should fit w/o scrolling in 80x24 term:
-usage: $usage
+usage: public-inbox-convert [options] OLD NEW
convert v1 format inboxes to v2
@@ -15,9 +14,8 @@ options:
--no-index do not index after conversion
--jobs=NUM set shards (NUM=0)
--verbose | -v increase verbosity (may be repeated)
- --help | -? show this help
-index options (see public-inbox-index(1) manpage for full description):
+index options (see public-inbox-index(1) man page for full description):
--no-fsync speed up indexing, risk corruption on power outage
-L LEVEL `basic', `medium', or `full' (default: full)
@@ -35,19 +33,17 @@ my $opt = {
quiet => -1, compact => 0, maxsize => undef, fsync => 1,
reindex => 1, # we always reindex
};
-GetOptions($opt, qw(jobs|j=i index! help|?),
+GetOptions($opt, qw(jobs|j=i index! help|h),
# index options
qw(verbose|v+ rethread compact|c+ fsync|sync!
indexlevel|index-level|L=s max_size|max-size=s
batch_size|batch-size=s
sequential_shard|sequential-shard|seq-shard
- )) or die <<EOF;
-bad command-line args\n$usage
-EOF
+ )) or die $help;
if ($opt->{help}) { print $help; exit 0 };
my $old_dir = shift(@ARGV) // '';
my $new_dir = shift(@ARGV) // '';
-die $usage if (scalar(@ARGV) || $new_dir eq '' || $old_dir eq '');
+die $help if (scalar(@ARGV) || $new_dir eq '' || $old_dir eq '');
die "$new_dir exists\n" if -d $new_dir;
die "$old_dir not a directory\n" unless -d $old_dir;
diff --git a/script/public-inbox-index b/script/public-inbox-index
index 9855c67d..89c6b782 100755
--- a/script/public-inbox-index
+++ b/script/public-inbox-index
@@ -8,9 +8,8 @@
use strict;
use v5.10.1;
use Getopt::Long qw(:config gnu_getopt no_ignore_case auto_abbrev);
-my $usage = 'public-inbox-index [options] INBOX_DIR';
my $help = <<EOF; # the following should fit w/o scrolling in 80x24 term:
-usage: $usage
+usage: public-inbox-index [options] INBOX_DIR
Create and update search indices
@@ -28,7 +27,6 @@ options:
--rethread regenerate thread IDs (if upgrading, use sparingly)
--prune prune git storage on discontiguous history
--verbose | -v increase verbosity (may be repeated)
- --help | -? show this help
BYTES may use `k', `m', and `g' suffixes (e.g. `10m' for 10 megabytes)
See public-inbox-index(1) man page for full documentation.
@@ -39,8 +37,8 @@ GetOptions($opt, qw(verbose|v+ reindex rethread compact|c+ jobs|j=i prune
indexlevel|index-level|L=s max_size|max-size=s
batch_size|batch-size=s
sequential_shard|seq-shard|sequential-shard
- skip-docdata all help|?))
- or die "bad command-line args\n$usage";
+ skip-docdata all help|h))
+ or die $help;
if ($opt->{help}) { print $help; exit 0 };
die "--jobs must be >= 0\n" if defined $opt->{jobs} && $opt->{jobs} < 0;
if ($opt->{xapian_only} && !$opt->{reindex}) {
@@ -54,7 +52,7 @@ PublicInbox::Admin::require_or_die('-index');
my $cfg = PublicInbox::Config->new; # Config is loaded by Admin
my @ibxs = PublicInbox::Admin::resolve_inboxes(\@ARGV, $opt, $cfg);
PublicInbox::Admin::require_or_die('-index');
-unless (@ibxs) { print STDERR "Usage: $usage\n"; exit 1 }
+unless (@ibxs) { print STDERR $help; exit 1 }
my $mods = {};
foreach my $ibx (@ibxs) {
diff --git a/script/public-inbox-init b/script/public-inbox-init
index 037e8e56..ae4a575c 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 = <<EOF; # the following should fit w/o scrolling in 80x24 term:
-usage: $usage
+usage: public-inbox-init NAME INBOX_DIR HTTP_URL ADDRESS [ADDRESS..]
Initialize a public-inbox
@@ -44,10 +43,10 @@ my %opts = (
'j|jobs=i' => \$jobs,
'ng|newsgroup=s' => \$ng,
'skip-docdata' => \$skip_docdata,
- 'help|?' => \$show_help,
+ 'help|h' => \$show_help,
);
my $usage_cb = sub {
- print STDERR "Usage: $usage\n";
+ print STDERR $help;
exit 1;
};
GetOptions(%opts) or $usage_cb->();
diff --git a/script/public-inbox-xcpdb b/script/public-inbox-xcpdb
index 2bfadc09..84620175 100755
--- a/script/public-inbox-xcpdb
+++ b/script/public-inbox-xcpdb
@@ -4,9 +4,8 @@
use strict;
use v5.10.1;
use Getopt::Long qw(:config gnu_getopt no_ignore_case auto_abbrev);
-my $usage = 'Usage: public-inbox-xcpdb [options] INBOX_DIR';
my $help = <<EOF; # the following should fit w/o scrolling in 80x24 term:
-usage: $usage
+usage: public-inbox-xcpdb [options] INBOX_DIR
upgrade or reshard Xapian DB(s) used by public-inbox
@@ -18,7 +17,6 @@ options:
--jobs=NUM limit parallelism to JOBS count
--verbose | -v increase verbosity (may be repeated)
--sequential-shard copy+index Xapian shards sequentially (for slow HDD)
- --help | -? show this help
index options (see public-inbox-index(1) man page for full description):
@@ -35,7 +33,7 @@ GetOptions($opt, qw(
sequential_shard|seq-shard|sequential-shard
jobs|j=i quiet|q verbose|v
blocksize|b=s no-full|n fuller|F
- all help|?)) or die "bad command-line args\n$usage";
+ all help|h)) or die $help;
if ($opt->{help}) { print $help; exit 0 };
use PublicInbox::Admin;
@@ -44,7 +42,7 @@ PublicInbox::Admin::require_or_die('-search');
require PublicInbox::Config;
my $cfg = PublicInbox::Config->new;
my @ibxs = PublicInbox::Admin::resolve_inboxes(\@ARGV, $opt, $cfg) or
- die $usage;
+ die $help;
my $idx_env = PublicInbox::Admin::index_prepare($opt, $cfg);
# we only set XAPIAN_FLUSH_THRESHOLD for index, since cpdb doesn't
next prev parent reply other threads:[~2020-09-01 1:15 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-01 1:14 [PATCH 00/10] some usability tweaks Eric Wong
2020-09-01 1:14 ` [PATCH 01/10] script/*: set executable bit on -learn and -imapd Eric Wong
2020-09-01 1:14 ` [PATCH 02/10] admin: improve minimum version text Eric Wong
2020-09-01 1:15 ` [PATCH 03/10] edit+purge: support `--help' and `-h' like other commands Eric Wong
2020-09-01 1:15 ` Eric Wong [this message]
2020-09-01 1:15 ` [PATCH 05/10] daemon: support --help/-h in -httpd/imapd/nntpd Eric Wong
2020-09-01 1:15 ` [PATCH 06/10] mda+learn: add --help / -h support Eric Wong
2020-09-01 1:15 ` [PATCH 07/10] config: use defined-or (//) in a few places Eric Wong
2020-09-01 1:15 ` [PATCH 08/10] watch: add --help/-h support Eric Wong
2020-09-01 1:15 ` [PATCH 09/10] doc: remove B<> (bold) markup from the remaining POD Eric Wong
2020-09-01 1:15 ` [PATCH 10/10] init+convert: create non-existing directory hierarchies Eric Wong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://public-inbox.org/README
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200901011507.1643-5-e@80x24.org \
--to=e@80x24.org \
--cc=meta@public-inbox.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/public-inbox.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).