* [PATCH 06/10] mda+learn: add --help / -h support
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
"use Getopt::Long" doesn't seem too slow on a hot page cache,
and it's probably used frequently enough to be in cache.
We'll also start reducing the amount of markup in the .pod and
favoring verbatim text in documentation for readability in
source form, since the bold text seems excessive.
---
Documentation/public-inbox-learn.pod | 2 +-
Documentation/public-inbox-mda.pod | 2 +-
script/public-inbox-learn | 23 ++++++++++++++++++-----
script/public-inbox-mda | 18 ++++++++++++++----
4 files changed, 34 insertions(+), 11 deletions(-)
diff --git a/Documentation/public-inbox-learn.pod b/Documentation/public-inbox-learn.pod
index cd9bf278..94c96fd5 100644
--- a/Documentation/public-inbox-learn.pod
+++ b/Documentation/public-inbox-learn.pod
@@ -4,7 +4,7 @@ public-inbox-learn - spam trainer and remover for public-inbox
=head1 SYNOPSIS
-B<public-inbox-learn> <spam|ham|rm> E<lt>MESSAGE
+ public-inbox-learn <spam|ham|rm> </path/to/RFC2822_message
=head1 DESCRIPTION
diff --git a/Documentation/public-inbox-mda.pod b/Documentation/public-inbox-mda.pod
index 99c9053d..a5e353e5 100644
--- a/Documentation/public-inbox-mda.pod
+++ b/Documentation/public-inbox-mda.pod
@@ -4,7 +4,7 @@ public-inbox-mda - mail delivery agent for public-inbox
=head1 SYNOPSIS
-B<public-inbox-mda> E<lt>MESSAGE
+ public-inbox-mda </path/to/RFC2822_message
=head1 DESCRIPTION
diff --git a/script/public-inbox-learn b/script/public-inbox-learn
index 5cd08d49..fb2d86ec 100755
--- a/script/public-inbox-learn
+++ b/script/public-inbox-learn
@@ -4,9 +4,22 @@
#
# Used for training spam (via SpamAssassin) and removing messages from a
# public-inbox
-my $usage = "$0 <spam|ham|rm> </path/to/message";
+my $help = <<EOF;
+usage: public-inbox-learn [OPTIONS] [spam|ham|rm] </path/to/RFC2822_message
+
+required action argument:
+
+ spam unindex the message and train as spam
+ rm remove the message without training as spam
+ ham index the message (based on To:/Cc: headers) and train as ham
+
+options:
+
+ --all scan all inboxes on `rm'
+
+See public-inbox-learn(1) man page for full documentation.
+EOF
use strict;
-use warnings;
use PublicInbox::Config;
use PublicInbox::InboxWritable;
use PublicInbox::Eml;
@@ -14,11 +27,11 @@ use PublicInbox::Address;
use PublicInbox::Spamcheck::Spamc;
use Getopt::Long qw(:config gnu_getopt no_ignore_case auto_abbrev);
my %opt = (all => 0);
-GetOptions(\%opt, 'all') or die "bad command-line args\n";
+GetOptions(\%opt, qw(all help|h)) or die $help;
-my $train = shift or die "usage: $usage\n";
+my $train = shift or die $help;
if ($train !~ /\A(?:ham|spam|rm)\z/) {
- die "`$train' not recognized.\nusage: $usage\n";
+ die "`$train' not recognized.\n$help";
}
die "--all only works with `rm'\n" if $opt{all} && $train ne 'rm';
diff --git a/script/public-inbox-mda b/script/public-inbox-mda
index 02ca3431..3ed5abb6 100755
--- a/script/public-inbox-mda
+++ b/script/public-inbox-mda
@@ -3,11 +3,21 @@
# License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
#
# Mail delivery agent for public-inbox, run from your MTA upon mail delivery
+my $help = <<EOF;
+usage: public-inbox-mda [OPTIONS] </path/to/RFC2822_message
+
+options:
+
+ --no-precheck skip internal checks for spam messages
+
+See public-inbox-mda(1) man page for full documentation.
+EOF
use strict;
-use warnings;
-my $usage = 'public-inbox-mda [OPTIONS] < rfc2822_message';
-my $precheck = grep(/\A--no-precheck\z/, @ARGV) ? 0 : 1;
-my ($ems, $emm);
+use Getopt::Long qw(:config gnu_getopt no_ignore_case auto_abbrev);
+my ($ems, $emm, $show_help);
+my $precheck = 1;
+GetOptions('precheck!' => \$precheck, 'help|h' => \$show_help) or
+ do { print STDERR $help; exit 1 };
my $do_exit = sub {
my ($code) = shift;
^ permalink raw reply related [relevance 5%]
* [PATCH 00/10] some usability tweaks
@ 2020-09-01 1:14 7% Eric Wong
2020-09-01 1:15 5% ` [PATCH 06/10] mda+learn: add --help / -h support 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 | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2020-09-01 1:14 7% [PATCH 00/10] some usability tweaks Eric Wong
2020-09-01 1:15 5% ` [PATCH 06/10] mda+learn: add --help / -h support Eric Wong
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).