From 6accd690b16aa0bce7117286944d69f378611eb8 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 1 Sep 2020 01:15:00 +0000 Subject: [PATCH] edit+purge: support `--help' and `-h' like other commands 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); -- 2.44.0