From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00, URIBL_BLOCKED shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 406EA1FA10 for ; Tue, 1 Sep 2020 01:15:08 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 03/10] edit+purge: support `--help' and `-h' like other commands Date: Tue, 1 Sep 2020 01:15:00 +0000 Message-Id: <20200901011507.1643-4-e@80x24.org> In-Reply-To: <20200901011507.1643-1-e@80x24.org> References: <20200901011507.1643-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: And while we're at it, note edit is *destructive* to encourage reading the fine manual. --- Documentation/public-inbox-edit.pod | 2 +- lib/PublicInbox/AdminEdit.pm | 2 +- script/public-inbox-edit | 21 ++++++++++++++++++--- script/public-inbox-purge | 17 ++++++++++++++--- 4 files changed, 34 insertions(+), 8 deletions(-) diff --git a/Documentation/public-inbox-edit.pod b/Documentation/public-inbox-edit.pod index 68180872..55d1c163 100644 --- a/Documentation/public-inbox-edit.pod +++ b/Documentation/public-inbox-edit.pod @@ -1,6 +1,6 @@ =head1 NAME -public-inbox-edit - edit messages in a public inbox +public-inbox-edit - destructively edit messages in a public inbox =head1 SYNOPSIS diff --git a/lib/PublicInbox/AdminEdit.pm b/lib/PublicInbox/AdminEdit.pm index 25abfd8e..4448dcc2 100644 --- a/lib/PublicInbox/AdminEdit.pm +++ b/lib/PublicInbox/AdminEdit.pm @@ -6,7 +6,7 @@ package PublicInbox::AdminEdit; use strict; use warnings; use PublicInbox::Admin; -our @OPT = qw(all force|f verbose|v!); +our @OPT = qw(all force|f verbose|v! help|h); sub check_editable ($) { my ($ibxs) = @_; diff --git a/script/public-inbox-edit b/script/public-inbox-edit index 240beb3a..a70614fc 100755 --- a/script/public-inbox-edit +++ b/script/public-inbox-edit @@ -16,11 +16,26 @@ use PublicInbox::Eml; use PublicInbox::InboxWritable qw(eml_from_path); use PublicInbox::Import; -my $usage = "$0 -m MESSAGE_ID [--all] [INBOX_DIRS]"; +my $help = <<'EOF'; +usage: public-inbox-edit -m MESSAGE-ID [--all] [INBOX_DIRS] + + destructively edit messages in a public inbox + +options: + + --all edit all configured inboxes + -m MESSAGE-ID edit the message with a given Message-ID + -F FILE edit the message matching the contents of FILE + --force forcibly edit even if Message-ID is ambiguous + --raw do not perform "From " line escaping + +See public-inbox-edit(1) man page for full documentation. +EOF + my $opt = { verbose => 1, all => 0, -min_inbox_version => 2, raw => 0 }; my @opt = qw(mid|m=s file|F=s raw); -GetOptions($opt, @PublicInbox::AdminEdit::OPT, @opt) or - die "bad command-line args\n$usage\n"; +GetOptions($opt, @PublicInbox::AdminEdit::OPT, @opt) or die $help; +if ($opt->{help}) { print $help; exit 0 }; my $cfg = PublicInbox::Config->new; my $editor = $ENV{MAIL_EDITOR}; # e.g. "mutt -f" diff --git a/script/public-inbox-purge b/script/public-inbox-purge index 82a63b80..7bca11ea 100755 --- a/script/public-inbox-purge +++ b/script/public-inbox-purge @@ -13,10 +13,21 @@ use PublicInbox::Filter::Base qw(REJECT); use PublicInbox::Eml; require PublicInbox::V2Writable; -my $usage = "$0 [--all] [INBOX_DIRS] 1, all => 0, -min_inbox_version => 2 }; -GetOptions($opt, @PublicInbox::AdminEdit::OPT) or - die "bad command-line args\n$usage\n"; +GetOptions($opt, @PublicInbox::AdminEdit::OPT) or die $help; +if ($opt->{help}) { print $help; exit 0 }; my @ibxs = PublicInbox::Admin::resolve_inboxes(\@ARGV, $opt); PublicInbox::AdminEdit::check_editable(\@ibxs);