Line | |
---|
1 | #!/bin/sh |
---|
2 | set -e |
---|
3 | |
---|
4 | |
---|
5 | # Parse arguments |
---|
6 | # |
---|
7 | if [ $# -lt 1 -o $# -gt 4 ]; then |
---|
8 | echo "Usage: $0 config-file EXTRAVERSION XEN_TARGET_ARCH XEN_SYSTYPE" |
---|
9 | exit 1 |
---|
10 | fi |
---|
11 | |
---|
12 | config_file=$1 |
---|
13 | extraversion=$2 |
---|
14 | target_arch=$3 |
---|
15 | systype=$4 |
---|
16 | |
---|
17 | |
---|
18 | # Start with initial config skeleton file, if any. |
---|
19 | # Derive from linux-defconfig_xen_x86_32 otherwise. |
---|
20 | # |
---|
21 | skeleton=buildconfigs/linux-defconfig_${extraversion}_${target_arch}${systype} |
---|
22 | [ -r $skeleton ] || skeleton=buildconfigs/linux-defconfig_xen_x86_32 |
---|
23 | [ -r $skeleton.local ] && skeleton=$skeleton.local |
---|
24 | cp $skeleton $config_file |
---|
25 | |
---|
26 | |
---|
27 | # Update |
---|
28 | # |
---|
29 | filter_template="s/^#\{0,1\} *\(CONFIG[^= ]*\).*/\/^#\\\{0,1\\\} *\1[= ].*\/d/p" |
---|
30 | config_dirs="buildconfigs/conf.linux buildconfigs/conf.linux-${target_arch} buildconfigs/conf.linux-${extraversion} buildconfigs/conf.linux-${target_arch}-${extraversion}" |
---|
31 | |
---|
32 | for config_dir in $config_dirs |
---|
33 | do |
---|
34 | if [ -d $config_dir ]; then |
---|
35 | # processing is done in alphanumeric order |
---|
36 | find $config_dir -type f | sort | while read update |
---|
37 | do |
---|
38 | # create the filter rules in a temp file |
---|
39 | filter_rules=`mktemp -t xenupdateconf.XXXXXXXXXX` |
---|
40 | sed -n "${filter_template}" < $update > $filter_rules |
---|
41 | |
---|
42 | # filter the config file in place, removing any options that |
---|
43 | # will be updated. |
---|
44 | sed -f $filter_rules -i $config_file |
---|
45 | cat $update >> $config_file |
---|
46 | |
---|
47 | # clean up |
---|
48 | rm -f $filter_rules |
---|
49 | done |
---|
50 | fi |
---|
51 | done |
---|
Note: See
TracBrowser
for help on using the repository browser.