xref: /f-stack/dpdk/devtools/cocci.sh (revision 4418919f)
12bfe3f2eSlogwang#! /bin/sh
2*4418919fSjohnjiang# SPDX-License-Identifier: BSD-3-Clause
3*4418919fSjohnjiang# Copyright 2015-2020 Mellanox Technologies, Ltd
42bfe3f2eSlogwang
52bfe3f2eSlogwang# Apply coccinelle transforms.
62bfe3f2eSlogwang
72bfe3f2eSlogwangSRCTREE=$(readlink -f $(dirname $0)/..)
82bfe3f2eSlogwangCOCCI=$SRCTREE/devtools/cocci
92bfe3f2eSlogwang[ -n "$SPATCH" ] || SPATCH=$(which spatch)
102bfe3f2eSlogwang
112bfe3f2eSlogwangPATCH_LIST="$@"
122bfe3f2eSlogwang[ -n "$PATCH_LIST" ] || PATCH_LIST=$(echo $COCCI/*.cocci)
132bfe3f2eSlogwang
142bfe3f2eSlogwang[ -x "$SPATCH" ] || (
152bfe3f2eSlogwang	echo "Coccinelle tools not installed."
162bfe3f2eSlogwang	exit 1
172bfe3f2eSlogwang)
182bfe3f2eSlogwang
19d30ea906Sjfb8856606tmp=$(mktemp -t dpdk.cocci.XXX)
202bfe3f2eSlogwang
212bfe3f2eSlogwangfor c in $PATCH_LIST; do
222bfe3f2eSlogwang	while true; do
232bfe3f2eSlogwang		echo -n "Applying $c..."
242bfe3f2eSlogwang		$SPATCH --sp-file $c -c --linux-spacing --very-quiet	\
252bfe3f2eSlogwang			--include-headers --preprocess			\
262bfe3f2eSlogwang			--in-place --dir $SRCTREE > $tmp
272bfe3f2eSlogwang		if [ -s $tmp ]; then
282bfe3f2eSlogwang			echo " changes applied, retrying."
292bfe3f2eSlogwang		else
302bfe3f2eSlogwang			echo " no change."
312bfe3f2eSlogwang			break;
322bfe3f2eSlogwang		fi
332bfe3f2eSlogwang	done
342bfe3f2eSlogwangdone
352bfe3f2eSlogwang
362bfe3f2eSlogwangrm -f $tmp
37