xref: /dpdk/devtools/cocci.sh (revision 80139e35493286bce0568cee03f58762b4051120)
19a98f50eSThomas Monjalon#! /bin/sh
2*80139e35SThomas Monjalon# SPDX-License-Identifier: BSD-3-Clause
3*80139e35SThomas Monjalon# Copyright 2015-2020 Mellanox Technologies, Ltd
49a98f50eSThomas Monjalon
59a98f50eSThomas Monjalon# Apply coccinelle transforms.
69a98f50eSThomas Monjalon
79a98f50eSThomas MonjalonSRCTREE=$(readlink -f $(dirname $0)/..)
89a98f50eSThomas MonjalonCOCCI=$SRCTREE/devtools/cocci
99a98f50eSThomas Monjalon[ -n "$SPATCH" ] || SPATCH=$(which spatch)
109a98f50eSThomas Monjalon
119a98f50eSThomas MonjalonPATCH_LIST="$@"
129a98f50eSThomas Monjalon[ -n "$PATCH_LIST" ] || PATCH_LIST=$(echo $COCCI/*.cocci)
139a98f50eSThomas Monjalon
149a98f50eSThomas Monjalon[ -x "$SPATCH" ] || (
159a98f50eSThomas Monjalon	echo "Coccinelle tools not installed."
169a98f50eSThomas Monjalon	exit 1
179a98f50eSThomas Monjalon)
189a98f50eSThomas Monjalon
19ff37ca5dSThomas Monjalontmp=$(mktemp -t dpdk.cocci.XXX)
209a98f50eSThomas Monjalon
219a98f50eSThomas Monjalonfor c in $PATCH_LIST; do
229a98f50eSThomas Monjalon	while true; do
239a98f50eSThomas Monjalon		echo -n "Applying $c..."
249a98f50eSThomas Monjalon		$SPATCH --sp-file $c -c --linux-spacing --very-quiet	\
259a98f50eSThomas Monjalon			--include-headers --preprocess			\
269a98f50eSThomas Monjalon			--in-place --dir $SRCTREE > $tmp
279a98f50eSThomas Monjalon		if [ -s $tmp ]; then
289a98f50eSThomas Monjalon			echo " changes applied, retrying."
299a98f50eSThomas Monjalon		else
309a98f50eSThomas Monjalon			echo " no change."
319a98f50eSThomas Monjalon			break;
329a98f50eSThomas Monjalon		fi
339a98f50eSThomas Monjalon	done
349a98f50eSThomas Monjalondone
359a98f50eSThomas Monjalon
369a98f50eSThomas Monjalonrm -f $tmp
37