board-status: Implement handling of "Clone of"

Change-Id: Ifb728ebb5d0e98b0c8a59f3bd8803ce193a05e5f
Signed-off-by: Patrick Georgi <patrick@coreboot.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/69184
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
diff --git a/util/docker/coreboot.org-status/board-status.html/boards.go b/util/docker/coreboot.org-status/board-status.html/boards.go
index dc68cb6..96e3be6 100644
--- a/util/docker/coreboot.org-status/board-status.html/boards.go
+++ b/util/docker/coreboot.org-status/board-status.html/boards.go
@@ -536,6 +536,14 @@
 			bi["Vendor cooperation score"] = "—"
 		}
 
+		venboard := vendor + string(filepath.Separator) + board
+		if bi["Clone of"] != "" {
+			venboard = bi["Clone of"]
+			venboard = strings.ReplaceAll(venboard, "/", string(filepath.Separator))
+			newpath := filepath.Join(dir.Name, "..", "..", venboard)
+			dir.Name = newpath
+		}
+
 		north, south, superio, cpu, partnum, err := readKconfig(dir)
 		if err != nil {
 			fmt.Fprintf(os.Stderr, "'%s' is not a mainboard directory: %v\n", dir.Name, err)