2022-04-24 13:03:41

by Ian Cowan

[permalink] [raw]
Subject: Re: [PATCH] scripts: get_maintainer: add an option to format for command line

On Sat, Apr 23, 2022 at 11:20:54PM +0400, Ozgur Karatas wrote:
> On Sat, Apr 23, 2022 at 10:56 PM Ian Cowan <[email protected]> wrote:
>
> > This adds the option to return the list of maintainers in the format for
> > sending via command line, specifically targeted for `git send-email`.
> > This will add a `--to` tag before the first email and a `--cc` tag for
> > each following email. The option can be toggled by using the
> > `--cl-format` flag when calling the get_maintainer script.
> >
> > The new addition is disabled by default and will only print (even if
> > enabled) if there are maintainers to return. This will prevent the
> > script from trying to generate a formatted line without any maintainers
> > and also allow the user to visually verify that the outputted line contains
> > the correct maintainers and lists (by verifying the roles).
> >
> >
> Hello,
>
> actually i have been using easier wrapper commands for a long time now, so
> what say Joe is right.
> get_maintainer.pl script will get all emails and just add them git
> send-email --to or --cc
>
> Regards
>

Sounds good, I will go about it this way!

Ian

>
>
> > Signed-off-by: Ian Cowan <[email protected]>
> > ---
> > scripts/get_maintainer.pl | 29 +++++++++++++++++++++++++++--
> > 1 file changed, 27 insertions(+), 2 deletions(-)
> >
> > diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl
> > index 6bd5221d37b8..fc6844a56c87 100755
> > --- a/scripts/get_maintainer.pl
> > +++ b/scripts/get_maintainer.pl
> > @@ -53,6 +53,7 @@ my $output_section_maxlen = 50;
> > my $scm = 0;
> > my $tree = 1;
> > my $web = 0;
> > +my $format_for_cl = 0;
> > my $subsystem = 0;
> > my $status = 0;
> > my $letters = "";
> > @@ -269,6 +270,7 @@ if (!GetOptions(
> > 'scm!' => \$scm,
> > 'tree!' => \$tree,
> > 'web!' => \$web,
> > + 'cl-format!' => \$format_for_cl,
> > 'letters=s' => \$letters,
> > 'pattern-depth=i' => \$pattern_depth,
> > 'k|keywords!' => \$keywords,
> > @@ -636,8 +638,13 @@ my %deduplicate_address_hash = ();
> >
> > my @maintainers = get_maintainers();
> > if (@maintainers) {
> > - @maintainers = merge_email(@maintainers);
> > - output(@maintainers);
> > + my @maintainers_merged = merge_email(@maintainers);
> > + output(@maintainers_merged);
> > +
> > + if ($format_for_cl) {
> > + my @format_for_cl = format_cl(@maintainers);
> > + output(@format_for_cl);
> > + }
> > }
> >
> > if ($scm) {
> > @@ -1071,6 +1078,7 @@ Output type options:
> > --separator [, ] => separator for multiple entries on 1 line
> > using --separator also sets --nomultiline if --separator is not [, ]
> > --multiline => print 1 entry per line
> > + --cl-format => Include a formatted string for emailing via the command
> > line
> >
> > Other options:
> > --pattern-depth => Number of pattern directory traversals (default: 0
> > (all))
> > @@ -2512,6 +2520,23 @@ sub merge_email {
> > return @lines;
> > }
> >
> > +sub format_cl {
> > + my @out;
> > + my $first = 1;
> > +
> > + for (@_) {
> > + my ($address, $role) = @$_;
> > + if ($first) {
> > + $first = 0;
> > + @out = "--to '$address'";
> > + } else {
> > + @out = "@out --cc '$address'";
> > + }
> > + }
> > +
> > + return ('', @out);
> > +}
> > +
> > sub output {
> > my (@parms) = @_;
> >
> > --
> > 2.35.1
> >
> >