| 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.