This script can be used to call checkpatch.pl from Linux with some
custom DPDK options.
The path to the original Linux script must be set in an environment
variable. A script is added to load any configuration variables
required by development tools from a file .develconfig, or
~/.config/dpdk/devel.config or /etc/dpdk/devel.config.
Signed-off-by: Thomas Monjalon <thomas.monjalon at 6wind.com>
---
scripts/checkpatches.sh | 30 ++++++++++++++++++++++++++++++
scripts/load-devel-config.sh | 14 ++++++++++++++
2 files changed, 44 insertions(+)
create mode 100755 scripts/checkpatches.sh
create mode 100755 scripts/load-devel-config.sh
diff --git a/scripts/checkpatches.sh b/scripts/checkpatches.sh
new file mode 100755
index 0000000..192b931
--- /dev/null
+++ b/scripts/checkpatches.sh
@@ -0,0 +1,30 @@
+#! /bin/sh
+
+# Load config options:
+# - DPDK_CHECKPATCH_PATH
+# - DPDK_CHECKPATCH_LINE_LENGTH
+. scripts/load-devel-config.sh
+if [ ! -x "$DPDK_CHECKPATCH_PATH" ] ; then
+ echo 'Cannot execute DPDK_CHECKPATCH_PATH' >&2
+ exit 1
+fi
+
+length=${DPDK_CHECKPATCH_LINE_LENGTH:-80}
+
+# override default Linux options
+options="$options --max-line-length=$length"
+options="$options --show-types"
+options="$options --ignore=LINUX_VERSION_CODE,FILE_PATH_CHANGES,\
+VOLATILE,PREFER_PACKED,PREFER_ALIGNED,PREFER_PRINTF,PREFER_KERNEL_TYPES,\
+SPLIT_STRING,LINE_SPACING,PARENTHESIS_ALIGNMENT,NETWORKING_BLOCK_COMMENT_STYLE,\
+NEW_TYPEDEFS,COMPLEX_MACRO,COMPARISON_TO_NULL"
+
+status=0
+for p in "$@" ; do
+ printf -- "\n### $p\n\n"
+ report=$($DPDK_CHECKPATCH_PATH $options "$p" 2>/dev/null)
+ [ $? -ne 0 ] || continue
+ printf '%s\n' "$report" | head -n -6
+ status=$(($status + 1))
+done
+exit $status
diff --git a/scripts/load-devel-config.sh b/scripts/load-devel-config.sh
new file mode 100755
index 0000000..489f007
--- /dev/null
+++ b/scripts/load-devel-config.sh
@@ -0,0 +1,14 @@
+#! /bin/echo must be loaded with .
+
+# Load DPDK devel config and allow override
+# from system file
+test ! -r /etc/dpdk/devel.config ||
+ . /etc/dpdk/devel.config
+# from user file
+test ! -r ~/.config/dpdk/devel.config ||
+ . ~/.config/dpdk/devel.config
+# from local file
+test ! -r $(dirname $(readlink -m $0))/../.develconfig ||
+ . $(dirname $(readlink -m $0))/../.develconfig
+
+# The config files must export variables in the shell style
--
2.5.2