Home | History | Annotate | Download | only in bin
      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 (at] linux.vnet.ibm.com>
     21 
     22 T=${TMPDIR-/tmp}/abat-chk-config.sh.$$
     23 trap 'rm -rf $T' 0
     24 mkdir $T
     25 
     26 cat $1 > $T/.config
     27 
     28 cat $2 | sed -e 's/\(.*\)=n/# \1 is not set/' -e 's/^#CHECK#//' |
     29 awk	'
     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