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 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).