xref: /linux/tools/testing/selftests/rcutorture/bin/config_override.sh (revision be709d48329a500621d2a05835283150ae137b45)
1#!/bin/bash
2#
3# config_override.sh base override
4#
5# Combines base and override, removing any Kconfig options from base
6# that conflict with any in override, concatenating what remains and
7# sending the result to standard output.
8#
9# This program is free software; you can redistribute it and/or modify
10# it under the terms of the GNU General Public License as published by
11# the Free Software Foundation; either version 2 of the License, or
12# (at your option) any later version.
13#
14# This program is distributed in the hope that it will be useful,
15# but WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17# GNU General Public License for more details.
18#
19# You should have received a copy of the GNU General Public License
20# along with this program; if not, you can access it online at
21# http://www.gnu.org/licenses/gpl-2.0.html.
22#
23# Copyright (C) IBM Corporation, 2017
24#
25# Authors: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
26
27base=$1
28if test -r $base
29then
30	:
31else
32	echo Base file $base unreadable!!!
33	exit 1
34fi
35
36override=$2
37if test -r $override
38then
39	:
40else
41	echo Override file $override unreadable!!!
42	exit 1
43fi
44
45T=${TMPDIR-/tmp}/config_override.sh.$$
46trap 'rm -rf $T' 0
47mkdir $T
48
49sed < $override -e 's/^/grep -v "/' -e 's/=.*$/="/' |
50	awk '
51	{
52		if (last)
53			print last " |";
54		last = $0;
55	}
56	END {
57		if (last)
58			print last;
59	}' > $T/script
60sh $T/script < $base
61cat $override
62