From: Yann E. MORIN" <yann.morin.1998@free.fr>
Date: Sun, 3 Jun 2012 20:06:04 +0000 (+0200)
Subject: utils/tweak: use ./configured config prefix
X-Git-Tag: v3.5.0-0~8
X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=94e9de894400cd10f16fb34af58e82a154e77b78;p=kconfig-frontends

utils/tweak: use ./configured config prefix

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---

diff --git a/.hgignore b/.hgignore
index b2a8e12..66f8316 100644
--- a/.hgignore
+++ b/.hgignore
@@ -25,6 +25,7 @@ libs/images/images.h
 libs/parser/?conf.c
 libs/*/.libs
 
+utils/tweak
 utils/gettext
 utils/*-gettext
 utils/.libs
diff --git a/scripts/ksync.list b/scripts/ksync.list
index 4908efe..45f19dc 100644
--- a/scripts/ksync.list
+++ b/scripts/ksync.list
@@ -27,7 +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                                    -->  utils/tweak
+scripts/config                                    -->  utils/tweak.in
 scripts/diffconfig                                -->  utils/diff
 scripts/kconfig/merge_config.sh                   -->  utils/merge
 scripts/kconfig/streamline_config.pl              -->  utils/streamline
diff --git a/utils/Makefile.am b/utils/Makefile.am
index 843c696..b5cab00 100644
--- a/utils/Makefile.am
+++ b/utils/Makefile.am
@@ -1,5 +1,5 @@
-dist_bin_SCRIPTS =  tweak diff merge
-dist_bin_SCRIPTS += streamline
+bin_SCRIPTS =  tweak
+dist_bin_SCRIPTS = diff merge streamline
 
 if COND_utils_gettext
     MAYBE_utils_gettext = gettext
@@ -12,3 +12,10 @@ gettext_CPPFLAGS = $(AM_CPPFLAGS)   \
 gettext_CFLAGS = $(AM_CFLAGS) $(kf_CFLAGS)
 gettext_LDADD = $(top_builddir)/libs/parser/libkconfig-parser.la    \
                 $(intl_LIBS)
+CLEANFILES = tweak
+EXTRA_DIST = tweak.in tweak.in.patch
+
+tweak: tweak.in
+	$(AM_V_GEN)$(SED) -r -e "s/@CONFIG_@/$(config_prefix)/g"    \
+	                  $< >$@
+	@chmod +x $@
diff --git a/utils/tweak b/utils/tweak
deleted file mode 100755
index 80d29a1..0000000
--- a/utils/tweak
+++ /dev/null
@@ -1,158 +0,0 @@
-#!/bin/bash
-# Manipulate options in a .config file from the command line
-
-usage() {
-	cat >&2 <<EOL
-Manipulate options in a .config file from the command line.
-Usage:
-config options command ...
-commands:
-	--enable|-e option   Enable option
-	--disable|-d option  Disable option
-	--module|-m option   Turn option into a module
-	--set-str option string
-	                     Set option to "string"
-	--set-val option value
-	                     Set option to value
-	--state|-s option    Print state of option (n,y,m,undef)
-
-	--enable-after|-E beforeopt option
-                             Enable option directly after other option
-	--disable-after|-D beforeopt option
-                             Disable option directly after other option
-	--module-after|-M beforeopt option
-                             Turn option into module directly after other option
-
-	commands can be repeated multiple times
-
-options:
-	--file .config file to change (default .config)
-
-config doesn't check the validity of the .config file. This is done at next
- make time.
-EOL
-	exit 1
-}
-
-checkarg() {
-	ARG="$1"
-	if [ "$ARG" = "" ] ; then
-		usage
-	fi
-	case "$ARG" in
-	CONFIG_*)
-		ARG="${ARG/CONFIG_/}"
-		;;
-	esac
-}
-
-set_var() {
-	local name=$1 new=$2 before=$3
-
-	name_re="^($name=|# $name is not set)"
-	before_re="^($before=|# $before is not set)"
-	if test -n "$before" && grep -Eq "$before_re" "$FN"; then
-		sed -ri "/$before_re/a $new" "$FN"
-	elif grep -Eq "$name_re" "$FN"; then
-		sed -ri "s:$name_re.*:$new:" "$FN"
-	else
-		echo "$new" >>"$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)
-		# sed swallows one level of escaping, so we need double-escaping
-		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/#\"/}"
-				V="${V/%\"/}"
-				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/utils/tweak.in b/utils/tweak.in
new file mode 100644
index 0000000..ef7a64a
--- /dev/null
+++ b/utils/tweak.in
@@ -0,0 +1,160 @@
+#!/bin/bash
+# Manipulate options in a .config file from the command line
+
+CONFIG_="@CONFIG_@"
+
+usage() {
+	cat >&2 <<EOL
+Manipulate options in a .config file from the command line.
+Usage:
+config options command ...
+commands:
+	--enable|-e option   Enable option
+	--disable|-d option  Disable option
+	--module|-m option   Turn option into a module
+	--set-str option string
+	                     Set option to "string"
+	--set-val option value
+	                     Set option to value
+	--state|-s option    Print state of option (n,y,m,undef)
+
+	--enable-after|-E beforeopt option
+                             Enable option directly after other option
+	--disable-after|-D beforeopt option
+                             Disable option directly after other option
+	--module-after|-M beforeopt option
+                             Turn option into module directly after other option
+
+	commands can be repeated multiple times
+
+options:
+	--file .config file to change (default .config)
+
+config doesn't check the validity of the .config file. This is done at next
+ make time.
+EOL
+	exit 1
+}
+
+checkarg() {
+	ARG="$1"
+	if [ "$ARG" = "" ] ; then
+		usage
+	fi
+	case "$ARG" in
+	${CONFIG_}*)
+		ARG="${ARG/${CONFIG_}/}"
+		;;
+	esac
+}
+
+set_var() {
+	local name=$1 new=$2 before=$3
+
+	name_re="^($name=|# $name is not set)"
+	before_re="^($before=|# $before is not set)"
+	if test -n "$before" && grep -Eq "$before_re" "$FN"; then
+		sed -ri "/$before_re/a $new" "$FN"
+	elif grep -Eq "$name_re" "$FN"; then
+		sed -ri "s:$name_re.*:$new:" "$FN"
+	else
+		echo "$new" >>"$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)
+		# sed swallows one level of escaping, so we need double-escaping
+		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/#\"/}"
+				V="${V/%\"/}"
+				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/utils/tweak.in.patch b/utils/tweak.in.patch
new file mode 100644
index 0000000..fe8ca68
--- /dev/null
+++ b/utils/tweak.in.patch
@@ -0,0 +1,90 @@
+--- a/utils/tweak.in	2012-06-03 22:13:16.901125538 +0200
++++ b/utils/tweak.in	2012-06-03 22:12:59.024523108 +0200
+@@ -1,6 +1,8 @@
+ #!/bin/bash
+ # Manipulate options in a .config file from the command line
+ 
++CONFIG_="@CONFIG_@"
++
+ usage() {
+ 	cat >&2 <<EOL
+ Manipulate options in a .config file from the command line.
+@@ -40,11 +43,10 @@
+ 		usage
+ 	fi
+ 	case "$ARG" in
+-	CONFIG_*)
+-		ARG="${ARG/CONFIG_/}"
++	${CONFIG_}*)
++		ARG="${ARG/${CONFIG_}/}"
+ 		;;
+ 	esac
+-	ARG="`echo $ARG | tr a-z A-Z`"
+ }
+ 
+ set_var() {
+@@ -95,37 +97,37 @@
+ 	esac
+ 	case "$CMD" in
+ 	--enable|-e)
+-		set_var "CONFIG_$ARG" "CONFIG_$ARG=y"
++		set_var "${CONFIG_}$ARG" "${CONFIG_}$ARG=y"
+ 		;;
+ 
+ 	--disable|-d)
+-		set_var "CONFIG_$ARG" "# CONFIG_$ARG is not set"
++		set_var "${CONFIG_}$ARG" "# ${CONFIG_}$ARG is not set"
+ 		;;
+ 
+ 	--module|-m)
+-		set_var "CONFIG_$ARG" "CONFIG_$ARG=m"
++		set_var "${CONFIG_}$ARG" "${CONFIG_}$ARG=m"
+ 		;;
+ 
+ 	--set-str)
+ 		# sed swallows one level of escaping, so we need double-escaping
+-		set_var "CONFIG_$ARG" "CONFIG_$ARG=\"${1//\"/\\\\\"}\""
++		set_var "${CONFIG_}$ARG" "${CONFIG_}$ARG=\"${1//\"/\\\\\"}\""
+ 		shift
+ 		;;
+ 
+ 	--set-val)
+-		set_var "CONFIG_$ARG" "CONFIG_$ARG=$1"
++		set_var "${CONFIG_}$ARG" "${CONFIG_}$ARG=$1"
+ 		shift
+ 		;;
+ 
+ 	--state|-s)
+-		if grep -q "# CONFIG_$ARG is not set" $FN ; then
++		if grep -q "# ${CONFIG_}$ARG is not set" $FN ; then
+ 			echo n
+ 		else
+-			V="$(grep "^CONFIG_$ARG=" $FN)"
++			V="$(grep "^${CONFIG_}$ARG=" $FN)"
+ 			if [ $? != 0 ] ; then
+ 				echo undef
+ 			else
+-				V="${V/#CONFIG_$ARG=/}"
++				V="${V/#${CONFIG_}$ARG=/}"
+ 				V="${V/#\"/}"
+ 				V="${V/%\"/}"
+ 				V="${V/\\\"/\"}"
+@@ -135,15 +137,15 @@
+ 		;;
+ 
+ 	--enable-after|-E)
+-		set_var "CONFIG_$B" "CONFIG_$B=y" "CONFIG_$A"
++		set_var "${CONFIG_}$B" "${CONFIG_}$B=y" "${CONFIG_}$A"
+ 		;;
+ 
+ 	--disable-after|-D)
+-		set_var "CONFIG_$B" "# CONFIG_$B is not set" "CONFIG_$A"
++		set_var "${CONFIG_}$B" "# ${CONFIG_}$B is not set" "${CONFIG_}$A"
+ 		;;
+ 
+ 	--module-after|-M)
+-		set_var "CONFIG_$B" "CONFIG_$B=m" "CONFIG_$A"
++		set_var "${CONFIG_}$B" "${CONFIG_}$B=m" "${CONFIG_}$A"
+ 		;;
+ 
+ 	# undocumented because it ignores --file (fixme)
diff --git a/utils/tweak.patch b/utils/tweak.patch
deleted file mode 100644
index 6e29190..0000000
--- a/utils/tweak.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff --git a/utils/tweak b/utils/tweak
---- a/utils/tweak
-+++ b/utils/tweak
-@@ -44,7 +44,6 @@
- 		ARG="${ARG/CONFIG_/}"
- 		;;
- 	esac
--	ARG="`echo $ARG | tr a-z A-Z`"
- }
- 
- set_var() {