|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5] scripts/add_maintainers.pl: New script
(Fixed the Subject line.)
Ian Jackson writes ("[PATCH] scripts/add_maintainers.pl: New script"):
> Changes since v4:
> - Strip some trailing whitespace from the code
> - writefile() now uses the .tmp-and-rename pattern to avoid data loss
> - Provide --get-maintainers= option to specify replacement for
> get_maintainers.pl. This is useful for Ian's usecase, since it
> allows --get-maintainers=true, to avoid adding any MAINTAINERS-based
> info anywhere while still adding other CCs (eg from -t) everywhere.
> - Refactor normalize() somewhat so that it uses only %seen, and
> does not any longer modify its argument arrays.
> - De-dupe case-insensitively (by making normalize use lc).
Here's the diff for my changes.
diff --git a/scripts/add_maintainers.pl b/scripts/add_maintainers.pl
index b4134e9..0f4a4cf 100755
--- a/scripts/add_maintainers.pl
+++ b/scripts/add_maintainers.pl
@@ -223,6 +223,7 @@ if (!GetOptions(
't|tags' => \$tags,
'tagscc' => \$tagscc,
'a|arg=s' => \@get_maintainer_args,
+ 'get-maintainers=s' => \$get_maintainer,
'verbose' => \$verbose,
'h|help' => \$help,
)) {
@@ -345,7 +346,7 @@ if ($has_cover_letter) {
my @ccpatch; # Cc: entries in *.patch
print "Processing: ".basename($cover_letter_file)."\n";
-
+
# Read all lines with CC & TO from the patch file such that subsequent
# calls don't lead to duplication
gettagsfrompatch($cover_letter_file, \@headerpatch, \@ccpatch);
@@ -467,21 +468,20 @@ sub hastag ($$) {
}
sub normalize ($$) {
- # This function is used to normalize lists of tags or CC / TO lists
- # - It removes duplicates in the input arrays
- # - It ensures that elements in the second list are not in the first
my ($ra, $rb) = @_;
+ # This function is used to normalize lists of tags or CC / TO lists
+ # It returns a list of the unique elements
+ # in @$ra, excluding any which are in @$rb.
+ # Comparisons are case-insensitive.
my @aonly = ();
my %seen;
my $item;
- @$ra = uniq @$ra;
- @$rb = uniq @$rb;
foreach $item (@$rb) {
- $seen{$item} = 1;
+ $seen{lc($item)} = 1;
}
foreach $item (@$ra) {
- unless ($seen{$item}) {
+ unless ($seen{lc($item)}++) {
# it's not in %seen, so add to @aonly
push @aonly, $item;
}
@@ -506,10 +506,11 @@ sub readfile ($) {
sub writefile ($$) {
my ($content, $file) = @_;
my $fh;
- open($fh, ">", $file)
- or die "Could not open file '$file' $!";
+ open($fh, ">", "$file.tmp")
+ or die "Could not open file '$file.tmp' $!";
print $fh $content or die $!;
close $fh or die $!;
+ rename "$file.tmp", $file or die "Could not rename '$file' into place $!";
}
sub insert ($$$$) {
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |