scripts/documentation-file-ref-check: add a fix logic for DT
authorMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Thu, 14 Jun 2018 12:36:35 +0000 (09:36 -0300)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Fri, 15 Jun 2018 21:10:01 +0000 (18:10 -0300)
There are several links broken due to DT file movements. Add
a hint logic to seek for those changes.

Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Acked-by: Jonathan Corbet <corbet@lwn.net>
scripts/documentation-file-ref-check

index 9d5e21b10346bf65d74ac655458d56a0bdbff6fa..c8bc1c1c1d6e26f3d63e49a8dff1cf0de5dea2f2 100755 (executable)
@@ -64,7 +64,7 @@ while (<IN>) {
                next if (grep -e, glob("$ref $fulref"));
 
                if ($fix) {
-                       if (!($ref =~ m/(devicetree|scripts|Kconfig|Kbuild)/)) {
+                       if (!($ref =~ m/(scripts|Kconfig|Kbuild)/)) {
                                $broken_ref{$ref}++;
                        }
                } else {
@@ -84,10 +84,19 @@ foreach my $ref (keys %broken_ref) {
        # get just the basename
        $new =~ s,.*/,,;
 
-       # Seek for the same name on another place, as it may have been moved
        my $f="";
 
-       $f = qx(find . -iname $new) if ($new);
+       # usual reason for breakage: DT file moved around
+       if ($ref =~ /devicetree/) {
+               my $search = $new;
+               $search =~ s,^.*/,,;
+               $f = qx(find Documentation/devicetree/ -iname "*$search*") if ($search);
+               if (!$f) {
+                       # Manufacturer name may have changed
+                       $search =~ s/^.*,//;
+                       $f = qx(find Documentation/devicetree/ -iname "*$search*") if ($search);
+               }
+       }
 
        # usual reason for breakage: file renamed to .rst
        if (!$f) {
@@ -95,6 +104,11 @@ foreach my $ref (keys %broken_ref) {
                $f=qx(find . -iname $new) if ($new);
        }
 
+       # Wild guess: seek for the same name on another place
+       if (!$f) {
+               $f = qx(find . -iname $new) if ($new);
+       }
+
        my @find = split /\s+/, $f;
 
        if (!$f) {