162306a36Sopenharmony_ci#!/bin/bash
262306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0+
362306a36Sopenharmony_ci#
462306a36Sopenharmony_ci# Usage: configcheck.sh .config .config-template
562306a36Sopenharmony_ci#
662306a36Sopenharmony_ci# Non-empty output if errors detected.
762306a36Sopenharmony_ci#
862306a36Sopenharmony_ci# Copyright (C) IBM Corporation, 2011
962306a36Sopenharmony_ci#
1062306a36Sopenharmony_ci# Authors: Paul E. McKenney <paulmck@linux.ibm.com>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ciT="`mktemp -d ${TMPDIR-/tmp}/configcheck.sh.XXXXXX`"
1362306a36Sopenharmony_citrap 'rm -rf $T' 0
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci# function test_kconfig_enabled ( Kconfig-var=val )
1662306a36Sopenharmony_cifunction test_kconfig_enabled () {
1762306a36Sopenharmony_ci	if ! grep -q "^$1$" $T/.config
1862306a36Sopenharmony_ci	then
1962306a36Sopenharmony_ci		echo :$1: improperly set
2062306a36Sopenharmony_ci		return 1
2162306a36Sopenharmony_ci	fi
2262306a36Sopenharmony_ci	return 0
2362306a36Sopenharmony_ci}
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci# function test_kconfig_disabled ( Kconfig-var )
2662306a36Sopenharmony_cifunction test_kconfig_disabled () {
2762306a36Sopenharmony_ci	if grep -q "^$1=n$" $T/.config
2862306a36Sopenharmony_ci	then
2962306a36Sopenharmony_ci		return 0
3062306a36Sopenharmony_ci	fi
3162306a36Sopenharmony_ci	if grep -q "^$1=" $T/.config
3262306a36Sopenharmony_ci	then
3362306a36Sopenharmony_ci		echo :$1=n: improperly set
3462306a36Sopenharmony_ci		return 1
3562306a36Sopenharmony_ci	fi
3662306a36Sopenharmony_ci	return 0
3762306a36Sopenharmony_ci}
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_cised -e 's/"//g' < $1 > $T/.config
4062306a36Sopenharmony_cised -e 's/^#CHECK#//' < $2 > $T/ConfigFragment
4162306a36Sopenharmony_cigrep '^CONFIG_.*=n$' $T/ConfigFragment |
4262306a36Sopenharmony_ci	sed -e 's/^/test_kconfig_disabled /' -e 's/=n$//' > $T/kconfig-n.sh
4362306a36Sopenharmony_ci. $T/kconfig-n.sh
4462306a36Sopenharmony_cigrep -v '^CONFIG_.*=n$' $T/ConfigFragment | grep '^CONFIG_' |
4562306a36Sopenharmony_ci	sed -e 's/^/test_kconfig_enabled /' > $T/kconfig-not-n.sh
4662306a36Sopenharmony_ci. $T/kconfig-not-n.sh
47