diff options
-rw-r--r-- | Documentation/public-inbox-learn.pod | 2 | ||||
-rw-r--r-- | Documentation/public-inbox-mda.pod | 2 | ||||
-rwxr-xr-x | script/public-inbox-learn | 23 | ||||
-rwxr-xr-x | 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; |