devtools: export dictionary for commit title check
authorSean Morrissey <sean.morrissey@intel.com>
Mon, 24 Feb 2020 15:30:01 +0000 (15:30 +0000)
committerThomas Monjalon <thomas@monjalon.net>
Tue, 25 Feb 2020 20:24:31 +0000 (21:24 +0100)
Moved title syntax to a separate file so that it improves code
readability and allows easy addition.

Also logic changed from checking for bad pattern to checking good
pattern which documents the expected syntax more clearly, and does not
have gaps in the checks.

Signed-off-by: Sean Morrissey <sean.morrissey@intel.com>
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
MAINTAINERS
devtools/check-git-log.sh
devtools/words-case.txt [new file with mode: 0644]

index 1886b18..f4e0ed8 100644 (file)
@@ -103,6 +103,7 @@ F: devtools/git-log-fixes.sh
 F: devtools/load-devel-config
 F: devtools/test-build.sh
 F: devtools/test-meson-builds.sh
+F: devtools/words-case.txt
 F: license/
 F: .editorconfig
 
index f9d0550..4e65be0 100755 (executable)
@@ -83,57 +83,22 @@ bad=$(echo "$headlines" | grep --color=always \
        | sed 's,^,\t,')
 [ -z "$bad" ] || printf "Wrong headline uppercase:\n$bad\n"
 
-# check headline uppercase (Rx/Tx, VF, L2, MAC, Linux, ARM...)
-bad=$(echo "$headlines" | grep -E --color=always \
-       -e ':.*\<(rx|tx|RX|TX)\>' \
-       -e ':.*\<[pv]f\>' \
-       -e ':.*\<[hsf]w\>' \
-       -e ':.*\<l[234]\>' \
-       -e ':.*\<api\>' \
-       -e ':.*\<ARM\>' \
-       -e ':.*\<(Aarch64|AArch64|AARCH64|Aarch32|AArch32|AARCH32)\>' \
-       -e ':.*\<(Armv7|ARMv7|ArmV7|armV7|ARMV7)\>' \
-       -e ':.*\<(Armv8|ARMv8|ArmV8|armV8|ARMV8)\>' \
-       -e ':.*\<crc\>' \
-       -e ':.*\<dcb\>' \
-       -e ':.*\<dma\>' \
-       -e ':.*\<eeprom\>' \
-       -e ':.*\<freebsd\>' \
-       -e ':.*\<iova\>' \
-       -e ':.*\<lacp\>' \
-       -e ':.*\<linux\>' \
-       -e ':.*\<lro\>' \
-       -e ':.*\<lsc\>' \
-       -e ':.*\<mac\>' \
-       -e ':.*\<mss\>' \
-       -e ':.*\<mtu\>' \
-       -e ':.*\<nic\>' \
-       -e ':.*\<nvm\>' \
-       -e ':.*\<numa\>' \
-       -e ':.*\<pci\>' \
-       -e ':.*\<phy\>' \
-       -e ':.*\<pmd\>' \
-       -e ':.*\<reta\>' \
-       -e ':.*\<rss\>' \
-       -e ':.*\<sctp\>' \
-       -e ':.*\<tos\>' \
-       -e ':.*\<tpid\>' \
-       -e ':.*\<tso\>' \
-       -e ':.*\<ttl\>' \
-       -e ':.*\<udp\>' \
-       -e ':.*\<[Vv]lan\>' \
-       -e ':.*\<vdpa\>' \
-       -e ':.*\<vsi\>' \
-       | grep \
-       -v ':.*\<OCTEON\ TX\>' \
-       | sed 's,^,\t,')
-[ -z "$bad" ] || printf "Wrong headline lowercase:\n$bad\n"
-
-# special case check for VMDq to give good error message
-bad=$(echo "$headlines" | grep -E --color=always \
-       -e '\<(vmdq|VMDQ)\>' \
-       | sed 's,^,\t,')
-[ -z "$bad" ] || printf "Wrong headline capitalization, use 'VMDq':\n$bad\n"
+# check headline case (Rx/Tx, VF, L2, MAC, Linux ...)
+IFS='
+'
+words="$selfdir/words-case.txt"
+for word in $(cat $words); do
+       bad=$(echo "$headlines" | grep -iw $word | grep -v $word)
+       if [ "$word" = "Tx" ]; then
+               bad=$(echo $bad | grep -v 'OCTEON\ TX')
+       fi
+       for bad_line in $bad; do
+               bad_word=$(echo $bad_line | cut -d":" -f2 | grep -io $word)
+               if [ -n "$bad_word" ]; then
+                       printf "Wrong headline case:\n\"$bad_line\": $bad_word --> $word\n"
+               fi
+       done
+done
 
 # check headline length (60 max)
 bad=$(echo "$headlines" |
@@ -187,8 +152,6 @@ done)
 [ -z "$bad" ] || printf "Missing 'Fixes' tag:\n$bad\n"
 
 # check Fixes: reference
-IFS='
-'
 fixtags=$(echo "$tags" | grep '^Fixes: ')
 bad=$(for fixtag in $fixtags ; do
        hash=$(echo "$fixtag" | sed 's,^Fixes: \([0-9a-f]*\).*,\1,')
diff --git a/devtools/words-case.txt b/devtools/words-case.txt
new file mode 100644 (file)
index 0000000..6bfb819
--- /dev/null
@@ -0,0 +1,47 @@
+aarch32
+aarch64
+API
+Arm
+armv7
+armv8
+CRC
+DCB
+DMA
+EEPROM
+FreeBSD
+FW
+HW
+IOVA
+L2
+L3
+L4
+LACP
+Linux
+LRO
+LSC
+MAC
+MSS
+MTU
+NIC
+NUMA
+NVM
+PCI
+PF
+PHY
+PMD
+RETA
+RSS
+Rx
+SCTP
+SW
+TOS
+TPID
+TSO
+TTL
+Tx
+UDP
+vDPA
+VF
+VLAN
+VMDq
+VSI