user/dev discussion of public-inbox itself
 help / color / mirror / code / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* [PATCH 04/10] script/*: fold $usage into $help, support `-h' instead of -?
  2020-09-01  1:14  7% [PATCH 00/10] some usability tweaks Eric Wong
@ 2020-09-01  1:15  5% ` Eric Wong
  0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2020-09-01  1:15 UTC (permalink / raw)
  To: meta

`-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

^ permalink raw reply	[relevance 5%]

* [PATCH 00/10] some usability tweaks
@ 2020-09-01  1:14  7% Eric Wong
  2020-09-01  1:15  5% ` [PATCH 04/10] script/*: fold $usage into $help, support `-h' instead of -? Eric Wong
  0 siblings, 1 reply; 2+ results
From: Eric Wong @ 2020-09-01  1:14 UTC (permalink / raw)
  To: meta

--help / -h is now supported for all user-run scripts (though
not public-inbox.cgi).  I'm dropping -? support since it never
made it into a release; -h is more consistent with other CLI
tools out there (notably git).

init + convert now creates deep directories like "git init".
Some minor cleanups and future proofing along the way, too.

Eric Wong (10):
  script/*: set executable bit on -learn and -imapd
  admin: improve minimum version text
  edit+purge: support `--help' and `-h' like other commands
  script/*: fold $usage into $help, support `-h' instead of -?
  daemon: support --help/-h in -httpd/imapd/nntpd
  mda+learn: add --help / -h support
  config: use defined-or (//) in a few places
  watch: add --help/-h support
  doc: remove B<> (bold) markup from the remaining POD
  init+convert: create non-existing directory hierarchies

 Documentation/public-inbox-edit.pod  |  2 +-
 Documentation/public-inbox-httpd.pod |  2 +-
 Documentation/public-inbox-imapd.pod |  2 +-
 Documentation/public-inbox-learn.pod |  2 +-
 Documentation/public-inbox-mda.pod   |  2 +-
 Documentation/public-inbox-nntpd.pod |  2 +-
 Documentation/public-inbox-watch.pod |  2 +-
 lib/PublicInbox/Admin.pm             |  2 +-
 lib/PublicInbox/AdminEdit.pm         |  2 +-
 lib/PublicInbox/Config.pm            |  6 ++----
 lib/PublicInbox/Daemon.pm            | 19 +++++++++++++++++--
 script/public-inbox-compact          |  9 ++++-----
 script/public-inbox-convert          | 21 ++++++++++-----------
 script/public-inbox-edit             | 21 ++++++++++++++++++---
 script/public-inbox-imapd            |  0
 script/public-inbox-index            | 10 ++++------
 script/public-inbox-init             | 17 +++++++++++------
 script/public-inbox-learn            | 23 ++++++++++++++++++-----
 script/public-inbox-mda              | 18 ++++++++++++++----
 script/public-inbox-purge            | 17 ++++++++++++++---
 script/public-inbox-watch            | 18 ++++++++++++++----
 script/public-inbox-xcpdb            |  8 +++-----
 t/convert-compact.t                  | 20 ++++++++++----------
 t/init.t                             | 12 ++++++++++++
 24 files changed, 160 insertions(+), 77 deletions(-)
 mode change 100644 => 100755 script/public-inbox-imapd
 mode change 100644 => 100755 script/public-inbox-learn


^ permalink raw reply	[relevance 7%]

Results 1-2 of 2 | reverse | sort options + mbox downloads above
-- links below jump to the message on this page --
2020-09-01  1:14  7% [PATCH 00/10] some usability tweaks Eric Wong
2020-09-01  1:15  5% ` [PATCH 04/10] script/*: fold $usage into $help, support `-h' instead of -? Eric Wong

Code repositories for project(s) associated with this 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).