diff options
Diffstat (limited to 'sys-kernel/linux/files/config_prepare.sh')
-rwxr-xr-x | sys-kernel/linux/files/config_prepare.sh | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/sys-kernel/linux/files/config_prepare.sh b/sys-kernel/linux/files/config_prepare.sh new file mode 100755 index 0000000..0d3409f --- /dev/null +++ b/sys-kernel/linux/files/config_prepare.sh @@ -0,0 +1,44 @@ +#!/bin/sh +set -e + +B="$(dirname $0)" + +# First just deploy arch linux configuration (ah yes I stole it) +cp "$B"/arch.config .config + +# 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" + +# As next step run olddefconfig (note: stderr contains some output about overrided +# options so I am ignoring it) +make olddefconfig 2>/dev/null + +# 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 |