#!/bin/bash DIR="${BASH_SOURCE%/*}" # if no CHECKPATCH is explicitly given by the environment, try to # locate checkpatch.pl: first take the one from the path, then check # for a local copy of the linux headers, finally try sources downloaded # with OP-TEE (for QEMU) if [ -z "$CHECKPATCH" ]; then CHECKPATCH=$(command -v checkpatch.pl) fi if [ -z "$CHECKPATCH" ]; then CHECKPATCH=$(find /usr/src/linux-headers* -name checkpatch.pl -print -quit) fi if [ -z "$CHECKPATCH" ]; then CHECKPATCH=$(find "$PWD/../linux" -name checkpatch.pl -print -quit) fi source "$DIR/checkpatch_inc.sh" hash $CHECKPATCH 2>/dev/null || { echo >&2 "Could not find checkpatch.pl, aborting"; exit 1; } usage() { SCR=$(basename "$0") echo "Usage: $SCR [--working] Check working area" echo " $SCR ... Check specific commit(s)" echo " $SCR --diff Check diff commit1...commit2" echo " $SCR --cached Check staging area" echo " $SCR --help This help" exit 1 } op=${1:---working} case "$op" in --cached) echo "Checking staging area: " checkstaging ;; --diff) echo "Checking diff (diff $1...$2)" checkdiff "$2" "$3" ;; --working) echo "Checking working area: " checkworking ;; --help|-h) usage ;; *) echo "Checking commit(s):" for c in $*; do checkpatch $c; done ;; esac