lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20220423185552.126453-1-ian@linux.cowan.aero>
Date:   Sat, 23 Apr 2022 14:55:52 -0400
From:   Ian Cowan <ian@...ux.cowan.aero>
To:     Joe Perches <joe@...ches.com>
Cc:     linux-kernel@...r.kernel.org, ian@...ux.cowan.aero
Subject: [PATCH] scripts: get_maintainer: add an option to format for command line

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

Signed-off-by: Ian Cowan <ian@...ux.cowan.aero>
---
 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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ