scripts: add a script to check if Documentation/00-INDEX is sane
authorMauro Carvalho Chehab <mchehab@s-opensource.com>
Mon, 5 Dec 2016 11:41:41 +0000 (09:41 -0200)
committerJonathan Corbet <corbet@lwn.net>
Mon, 5 Dec 2016 21:21:24 +0000 (14:21 -0700)
It is easy to forget adding/removing entries at the
Documentation/00-INDEX file. In a matter of fact, even before
ReST conversion, people use to forget adding things here, as
there are lots of missing stuff out there.

Now that we're doing a hard work converting entries to ReST,
and while this hole file is not outdated, it is good to have
some tool that would help to verify that this file is kept
updated.

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
scripts/check_00index.sh [new file with mode: 0755]

diff --git a/scripts/check_00index.sh b/scripts/check_00index.sh
new file mode 100755 (executable)
index 0000000..6ac9527
--- /dev/null
@@ -0,0 +1,66 @@
+#!/bin/bash
+
+cd Documentation/
+
+# Check entries that should be removed
+
+obsolete=""
+for i in $(tail -n +12 00-INDEX |grep -E '^[a-zA-Z0-9]+'); do
+       if [ ! -e $i ]; then
+               obsolete="$obsolete $i"
+       fi
+done
+
+# Check directory entries that should be added
+search=""
+dir=""
+for i in $(find . -maxdepth 1 -type d); do
+       if [ "$i" != "." ]; then
+               new=$(echo $i|perl -ne 's,./(.*),$1/,; print $_')
+               search="$search $new"
+       fi
+done
+
+for i in $search; do
+       if [ "$(grep -P "^$i" 00-INDEX)" == "" ]; then
+               dir="$dir $i"
+       fi
+done
+
+# Check file entries that should be added
+search=""
+file=""
+for i in $(find . -maxdepth 1 -type f); do
+       if [ "$i" != "./.gitignore" ]; then
+               new=$(echo $i|perl -ne 's,./(.*),$1,; print $_')
+               search="$search $new"
+       fi
+done
+
+for i in $search; do
+       if [ "$(grep -P "^$i\$" 00-INDEX)" == "" ]; then
+               file="$file $i"
+       fi
+done
+
+# Output its findings
+
+echo -e "Documentation/00-INDEX check results:\n"
+
+if [ "$obsolete" != "" ]; then
+       echo -e "- Should remove those entries:\n\t$obsolete\n"
+else
+       echo -e "- No obsolete entries\n"
+fi
+
+if [ "$dir" != "" ]; then
+       echo -e "- Should document those directories:\n\t$dir\n"
+else
+       echo -e "- No new directories to add\n"
+fi
+
+if [ "$file" != "" ]; then
+       echo -e "- Should document those files:\n\t$file"
+else
+       echo "- No new files to add"
+fi