mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
scripts/add_maintainers.pl: Add logic to use V entry
Add logic to use V section entry in THE REST for identifying xen trees Specifically: * Move check until after the MAINTAINERS file has been read * Add get_xen_maintainers_file_version() for check * Remove top_of_tree as not needed any more * Fail with extended error message when used out of tree Signed-off-by: Lars Kurth <lars.kurth@citrix.com> Acked-by: Julien Grall <julien.grall@arm.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
This commit is contained in:
1 parent
8ed96cd071
commit
1014f47c7a
1 file changed
+35
-22
+35
-22
@@ -265,11 +265,6 @@ if ($email &&
|
||||
die "$P: Please select at least 1 email option\n";
|
||||
}
|
||||
|
||||
if (!top_of_tree($xen_path)) {
|
||||
die "$P: The current directory does not appear to be "
|
||||
. "a Xen source tree.\n";
|
||||
}
|
||||
|
||||
## Read MAINTAINERS for type/value pairs
|
||||
|
||||
my @typevalue = ();
|
||||
@@ -311,6 +306,16 @@ while (<$maint>) {
|
||||
}
|
||||
close($maint);
|
||||
|
||||
# Check whether we have a V entry under the REST
|
||||
# and use it to get the file's version number
|
||||
my $maintainers_file_version = get_xen_maintainers_file_version();
|
||||
if (!$maintainers_file_version) {
|
||||
die "$P: the MAINTAINERS file ".
|
||||
"in the current directory does not appear to be from ".
|
||||
"the xen.git source tree or a sister tree.\n\n".
|
||||
"A 'V: xen-maintainers-<version>' entry under THE REST ".
|
||||
"is needed to identify a Xen MAINTAINERS file.\n\n";
|
||||
}
|
||||
|
||||
#
|
||||
# Read mail address map
|
||||
@@ -564,6 +569,31 @@ sub range_has_maintainer {
|
||||
return 0;
|
||||
}
|
||||
|
||||
sub get_xen_maintainers_file_version {
|
||||
my $tvi = find_first_section();
|
||||
|
||||
while ($tvi < @typevalue) {
|
||||
my $start = find_starting_index($tvi);
|
||||
my $end = find_ending_index($tvi);
|
||||
my $i;
|
||||
|
||||
for ($i = $start; $i < $end; $i++) {
|
||||
my $line = $typevalue[$i];
|
||||
if ($line =~ m/^V:\s*(.*)/) {
|
||||
# Note that get_maintainer_role() requires processing
|
||||
# of more of the file. So do it directly
|
||||
if ($typevalue[$start] eq "THE REST") {
|
||||
if ($line =~ m/xen-maintainers-(.*)/) {
|
||||
return $1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$tvi = $end + 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
sub get_maintainers {
|
||||
%email_hash_name = ();
|
||||
%email_hash_address = ();
|
||||
@@ -867,23 +897,6 @@ Notes:
|
||||
EOT
|
||||
}
|
||||
|
||||
sub top_of_tree {
|
||||
my ($xen_path) = @_;
|
||||
|
||||
if ($xen_path ne "" && substr($xen_path,length($xen_path)-1,1) ne "/") {
|
||||
$xen_path .= "/";
|
||||
}
|
||||
if ( (-f "${xen_path}COPYING")
|
||||
&& (-f "${xen_path}MAINTAINERS")
|
||||
&& (-f "${xen_path}Makefile")
|
||||
&& (-d "${xen_path}docs")
|
||||
&& (-f "${xen_path}CODING_STYLE")
|
||||
&& (-d "${xen_path}xen")) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
sub parse_email {
|
||||
my ($formatted_email) = @_;
|
||||
|
||||
|
||||