47 lines · bash
1#!/bin/bash2# SPDX-License-Identifier: GPL-2.0+3#4# Usage: configcheck.sh .config .config-template5#6# Non-empty output if errors detected.7#8# Copyright (C) IBM Corporation, 20119#10# Authors: Paul E. McKenney <paulmck@linux.ibm.com>11 12T="`mktemp -d ${TMPDIR-/tmp}/configcheck.sh.XXXXXX`"13trap 'rm -rf $T' 014 15# function test_kconfig_enabled ( Kconfig-var=val )16function test_kconfig_enabled () {17 if ! grep -q "^$1$" $T/.config18 then19 echo :$1: improperly set20 return 121 fi22 return 023}24 25# function test_kconfig_disabled ( Kconfig-var )26function test_kconfig_disabled () {27 if grep -q "^$1=n$" $T/.config28 then29 return 030 fi31 if grep -q "^$1=" $T/.config32 then33 echo :$1=n: improperly set34 return 135 fi36 return 037}38 39sed -e 's/"//g' < $1 > $T/.config40sed -e 's/^#CHECK#//' < $2 > $T/ConfigFragment41grep '^CONFIG_.*=n$' $T/ConfigFragment |42 sed -e 's/^/test_kconfig_disabled /' -e 's/=n$//' > $T/kconfig-n.sh43. $T/kconfig-n.sh44grep -v '^CONFIG_.*=n$' $T/ConfigFragment | grep '^CONFIG_' |45 sed -e 's/^/test_kconfig_enabled /' > $T/kconfig-not-n.sh46. $T/kconfig-not-n.sh47