1#!/bin/bash 2# Usage: configcheck.sh .config .config-template 3# 4# This program is free software; you can redistribute it and/or modify 5# it under the terms of the GNU General Public License as published by 6# the Free Software Foundation; either version 2 of the License, or 7# (at your option) any later version. 8# 9# This program is distributed in the hope that it will be useful, 10# but WITHOUT ANY WARRANTY; without even the implied warranty of 11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12# GNU General Public License for more details. 13# 14# You should have received a copy of the GNU General Public License 15# along with this program; if not, you can access it online at 16# http://www.gnu.org/licenses/gpl-2.0.html. 17# 18# Copyright (C) IBM Corporation, 2011 19# 20# Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com> 21 22T=${TMPDIR-/tmp}/abat-chk-config.sh.$$ 23trap 'rm -rf $T' 0 24mkdir $T 25 26cat $1 > $T/.config 27 28cat $2 | sed -e 's/\(.*\)=n/# \1 is not set/' -e 's/^#CHECK#//' | 29awk ' 30{ 31 print "if grep -q \"" $0 "\" < '"$T/.config"'"; 32 print "then"; 33 print "\t:"; 34 print "else"; 35 if ($1 == "#") { 36 print "\tif grep -q \"" $2 "\" < '"$T/.config"'"; 37 print "\tthen"; 38 print "\t\tif test \"$firsttime\" = \"\"" 39 print "\t\tthen" 40 print "\t\t\tfirsttime=1" 41 print "\t\tfi" 42 print "\t\techo \":" $2 ": improperly set\""; 43 print "\telse"; 44 print "\t\t:"; 45 print "\tfi"; 46 } else { 47 print "\tif test \"$firsttime\" = \"\"" 48 print "\tthen" 49 print "\t\tfirsttime=1" 50 print "\tfi" 51 print "\techo \":" $0 ": improperly set\""; 52 } 53 print "fi"; 54 }' | sh 55