diff options
Diffstat (limited to 'sys-boot/linux/files/config_prepare.sh')
-rwxr-xr-x | sys-boot/linux/files/config_prepare.sh | 82 |
1 files changed, 37 insertions, 45 deletions
diff --git a/sys-boot/linux/files/config_prepare.sh b/sys-boot/linux/files/config_prepare.sh index 729e53c..0d3409f 100755 --- a/sys-boot/linux/files/config_prepare.sh +++ b/sys-boot/linux/files/config_prepare.sh @@ -1,52 +1,44 @@ #!/bin/sh set -e -CNF="$(dirname $0)/configs" +B="$(dirname $0)" -CONFS="base gentoo" +# First just deploy arch linux configuration (ah yes I stole it) +cp "$B"/arch.config .config -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 +# And now apply changes from overlay.config +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 < "$B/overlay.config" -if [ -z "$ARCH" ]; then - CONFS="$CONFS $(uname -m)" -elif [ "$ARCH" = "x86_64" ]; then - CONFS="$CONFS x86_64" -fi +# As next step run olddefconfig (note: stderr contains some output about overrided +# options so I am ignoring it) +make olddefconfig 2>/dev/null -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 +# Now let's check that configuration +EC=0 +while read L; do + echo "$L" | grep -qE "^[[:space:]]*$" && continue # ignore empty lines + echo "$L" | grep -qE "#.*" && continue # Ignore comments + OPTION="$(echo "$L" | grep -oE '^CONFIG_.*=')" + VALUE="$(echo "$L" | grep -oE '=.*$')" + if [ "$VALUE" = "=n" ]; then + if grep -qE "^$OPTION=y" .config; then + EC=1 + echo -e "\e[1;31mY:\e[0m$L" + fi + else + if ! grep -qE "^$L$" .config; then + EC=1 + echo -e "\e[1;31mN:\e[0m$L" + fi + fi +done < "$B/overlay.config" + +exit $EC |