From 4b914b0c8f7db6e2ba0b027f455f32cb843b1ded Mon Sep 17 00:00:00 2001 From: Timothy Day Date: Tue, 20 Feb 2024 02:44:12 +0000 Subject: [PATCH] LU-6142 contrib: git plugins Git plugins to quick see the progress towards checkpatch cleanups in Lustre. The original (git-tabcheck) was authored by Andreas Dilger to help with space to tabs conversion. The second (git-checkpatch) was modified from the original script to help capture generic checkpatch warnings. Signed-off-by: Timothy Day Change-Id: Iab7aaa70690d00f1b7dd5ebcd2412865dae34729 Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/54101 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Andreas Dilger Reviewed-by: Arshad Hussain Reviewed-by: Oleg Drokin --- contrib/git-cmds/git-checkpatch | 35 +++++++++++++++++++++++++++++++++++ contrib/git-cmds/git-tabcheck | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100755 contrib/git-cmds/git-checkpatch create mode 100755 contrib/git-cmds/git-tabcheck diff --git a/contrib/git-cmds/git-checkpatch b/contrib/git-cmds/git-checkpatch new file mode 100755 index 0000000..3cfe04e --- /dev/null +++ b/contrib/git-cmds/git-checkpatch @@ -0,0 +1,35 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0-only + +# +# This file is part of Lustre, http://www.lustre.org/ +# +# contrib/git-cmds/git-checkpatch +# +# Check the progress of checkpatch.pl fixes in the +# Lustre tree. Modified from git-tabcheck. +# +# Author: Andreas Dilger +# Modified by: Timothy Day +# + +export CHECKPATCH=${CHECKPATCH:-"./contrib/scripts/checkpatch.pl"} + +DIRS="$*" +[ -z "$DIRS" ] && DIRS="ls -d */" + +for D in $DIRS; do + [ ! -d "$D" ] && continue + FILES=$(find "$D" -name "*.[ch]") + + [ -z "$FILES" ] && continue + TOT="$(echo "$FILES" | xargs cat | wc -l)" + + [ -z "$TOT" ] && continue + CNT="$(echo "$FILES" | xargs -I{} bash -c '$CHECKPATCH --terse -f $1' _ {} | grep -v "total:" | wc -l)" + + D=$(basename "$D") + + printf "%-16s %-10s %-11s \n" \ + "$D:" "loc=$TOT" "errors/warnings=$CNT" +done diff --git a/contrib/git-cmds/git-tabcheck b/contrib/git-cmds/git-tabcheck new file mode 100755 index 0000000..7075fe9 --- /dev/null +++ b/contrib/git-cmds/git-tabcheck @@ -0,0 +1,37 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0-only + +# +# This file is part of Lustre, http://www.lustre.org/ +# +# contrib/git-cmds/git-tabcheck +# +# Check the progress of space -> tab conversion in the +# Lustre tree. +# +# Author: Andreas Dilger +# + +DIRS="$*" +[ -z "$DIRS" ] && DIRS="ls -d */" + +for D in $DIRS; do + [ ! -d "$D" ] && continue + FILES=$(find "$D" -name "*.[ch]" -o -name "*.sh") + + [ -z "$FILES" ] && continue + TOT="$(echo "$FILES" | xargs cat | wc -l)" + + [ -z "$TOT" ] && continue + TAB="$(echo "$FILES" | xargs grep "\t" | wc -l)" + SPC="$(echo "$FILES" | xargs grep "^ " | wc -l)" + + PCB=$(((TAB * 1000 + 5) / TOT / 10)) + PCS=$(((SPC * 1000 + 5) / TOT / 10)) + PCT=$(((TAB * 1000 + 5) / (TAB + SPC) / 10)) + + D=$(basename "$D") + + printf "%-16s %-10s %-11s %6s %-11s %6s %-10s\n" \ + "$D:" "loc=$TOT" "tabs=$TAB" "($PCB%)" "space=$SPC" "($PCS%)" "$PCT%" +done -- 1.8.3.1