diff options
Diffstat (limited to 'sys-boot/linux/files/config_prepare.sh')
-rwxr-xr-x | sys-boot/linux/files/config_prepare.sh | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/sys-boot/linux/files/config_prepare.sh b/sys-boot/linux/files/config_prepare.sh new file mode 100755 index 0000000..729e53c --- /dev/null +++ b/sys-boot/linux/files/config_prepare.sh @@ -0,0 +1,52 @@ +#!/bin/sh +set -e + +CNF="$(dirname $0)/configs" + +CONFS="base gentoo" + +while [ $# -gt 0 ]; do + case "$1" in + --help|-h) + echo "Usage: $0 [OPTION]... CONFIG..." + echo "Combine configurations and esure that we have corrent ones." + exit + ;; + --repeat|-r) + shift + REPEAT="$1" + ;; + -*) + echo "Warning: ignoring uknown option: $1" >&2 + ;; + *) + if [ -f "$CNF/$1" ]; then + CONFS="$CONFS $1" + else + echo "Warning: ignoring requested missing configuration: $1" >&2 + fi + ;; + esac + shift +done + +if [ -z "$ARCH" ]; then + CONFS="$CONFS $(uname -m)" +elif [ "$ARCH" = "x86_64" ]; then + CONFS="$CONFS x86_64" +fi + +for C in $CONFS; do + while read L; do + echo "$L" | grep -qE "^[[:space:]]*$" && continue # ignore empty lines + echo "$L" | grep -qE "#.*" && continue # Ignore comments + # Remove lines with changed settings + OPTION="$(echo "$L" | grep -oE '^CONFIG_.*=')" + sed -i "#^$OPTION#d" .config + # Put config + echo "$L" >> .config + done < "$CNF/$C" +done +# Append small version +#sed -i "#^CONFIG_LOCALVERSION=#g" .config +#echo "CONFIG_LOCALVERSION=\".$VERSION\"" >> .config |