From 8fae196f503366852ea8a7e9d23133bec08ad43a Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN\"" Date: Mon, 9 Apr 2012 13:43:38 +0200 Subject: [PATCH] misc: add script to manipulate .config from cmdline Signed-off-by: "Yann E. MORIN" --- misc/config | 156 ++++++++++++++++++++++++++++++++++++ misc/kernel2kfrontends.list | 1 + 2 files changed, 157 insertions(+) create mode 100755 misc/config diff --git a/misc/config b/misc/config new file mode 100755 index 0000000..a7c7c4b --- /dev/null +++ b/misc/config @@ -0,0 +1,156 @@ +#!/bin/bash +# Manipulate options in a .config file from the command line + +usage() { + cat >&2 <>"$FN" + fi +} + +if [ "$1" = "--file" ]; then + FN="$2" + if [ "$FN" = "" ] ; then + usage + fi + shift 2 +else + FN=.config +fi + +if [ "$1" = "" ] ; then + usage +fi + +while [ "$1" != "" ] ; do + CMD="$1" + shift + case "$CMD" in + --refresh) + ;; + --*-after) + checkarg "$1" + A=$ARG + checkarg "$2" + B=$ARG + shift 2 + ;; + -*) + checkarg "$1" + shift + ;; + esac + case "$CMD" in + --enable|-e) + set_var "CONFIG_$ARG" "CONFIG_$ARG=y" + ;; + + --disable|-d) + set_var "CONFIG_$ARG" "# CONFIG_$ARG is not set" + ;; + + --module|-m) + set_var "CONFIG_$ARG" "CONFIG_$ARG=m" + ;; + + --set-str) + set_var "CONFIG_$ARG" "CONFIG_$ARG=\"$1\"" + shift + ;; + + --set-val) + set_var "CONFIG_$ARG" "CONFIG_$ARG=$1" + shift + ;; + + --state|-s) + if grep -q "# CONFIG_$ARG is not set" $FN ; then + echo n + else + V="$(grep "^CONFIG_$ARG=" $FN)" + if [ $? != 0 ] ; then + echo undef + else + V="${V/CONFIG_$ARG=/}" + V="${V/\"/}" + echo "$V" + fi + fi + ;; + + --enable-after|-E) + set_var "CONFIG_$B" "CONFIG_$B=y" "CONFIG_$A" + ;; + + --disable-after|-D) + set_var "CONFIG_$B" "# CONFIG_$B is not set" "CONFIG_$A" + ;; + + --module-after|-M) + set_var "CONFIG_$B" "CONFIG_$B=m" "CONFIG_$A" + ;; + + # undocumented because it ignores --file (fixme) + --refresh) + yes "" | make oldconfig + ;; + + *) + usage + ;; + esac +done + diff --git a/misc/kernel2kfrontends.list b/misc/kernel2kfrontends.list index 5c49ea1..3fed3fc 100644 --- a/misc/kernel2kfrontends.list +++ b/misc/kernel2kfrontends.list @@ -27,6 +27,7 @@ scripts/kconfig/menu.c --> libs/parser/menu.c scripts/kconfig/symbol.c --> libs/parser/symbol.c scripts/kconfig/util.c --> libs/parser/util.c scripts/kconfig/zconf.y --> libs/parser/yconf.y +scripts/config --> misc/config scripts/diffconfig --> misc/diffconfig scripts/kconfig/kxgettext.c --> misc/kxgettext.c scripts/kconfig/merge_config.sh --> misc/merge_config.sh -- 2.39.5