From: Markus Schneider-Pargmann <msp@baylibre.com>
To: Masahiro Yamada <masahiroy@kernel.org>,
Markus Schneider-Pargmann <msp@baylibre.com>
Cc: linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org
Subject: [RFC 1/2] kconfig: Add helpallconfig
Date: Wed, 27 Mar 2024 15:25:43 +0100 [thread overview]
Message-ID: <20240327142544.1728286-2-msp@baylibre.com> (raw)
In-Reply-To: <20240327142544.1728286-1-msp@baylibre.com>
To support a possible fzf driven kconfig script, all config symbols need
to be printed. As helpnewconfig already provides a very similar list,
this patch extends that functionality to print all config symbols with a
new command called helpallconfig.
Signed-off-by: Markus Schneider-Pargmann <msp@baylibre.com>
---
scripts/kconfig/Makefile | 4 +++-
scripts/kconfig/conf.c | 17 +++++++++++++----
2 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
index ea1bf3b3dbde..87df82c03afb 100644
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
@@ -77,7 +77,8 @@ localyesconfig localmodconfig: $(obj)/conf
# deprecated for external use
simple-targets := oldconfig allnoconfig allyesconfig allmodconfig \
alldefconfig randconfig listnewconfig olddefconfig syncconfig \
- helpnewconfig yes2modconfig mod2yesconfig mod2noconfig
+ helpallconfig helpnewconfig yes2modconfig mod2yesconfig \
+ mod2noconfig
PHONY += $(simple-targets)
@@ -147,6 +148,7 @@ help:
@echo ' mod2yesconfig - Change answers from mod to yes if possible'
@echo ' mod2noconfig - Change answers from mod to no if possible'
@echo ' listnewconfig - List new options'
+ @echo ' helpallconfig - List all options and help text'
@echo ' helpnewconfig - List new options and help text'
@echo ' olddefconfig - Same as oldconfig but sets new symbols to their'
@echo ' default value without prompting'
diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
index b5730061872b..3abc5f6b3a27 100644
--- a/scripts/kconfig/conf.c
+++ b/scripts/kconfig/conf.c
@@ -32,6 +32,7 @@ enum input_mode {
defconfig,
savedefconfig,
listnewconfig,
+ helpallconfig,
helpnewconfig,
olddefconfig,
yes2modconfig,
@@ -633,13 +634,14 @@ static void check_conf(struct menu *menu)
struct symbol *sym;
struct menu *child;
- if (!menu_is_visible(menu))
+ if (input_mode != helpallconfig && !menu_is_visible(menu))
return;
sym = menu->sym;
- if (sym && !sym_has_value(sym) &&
- (sym_is_changeable(sym) ||
- (sym_is_choice(sym) && sym_get_tristate_value(sym) == yes))) {
+ if (input_mode == helpallconfig ||
+ (sym && !sym_has_value(sym) &&
+ (sym_is_changeable(sym) ||
+ (sym_is_choice(sym) && sym_get_tristate_value(sym) == yes)))) {
switch (input_mode) {
case listnewconfig:
@@ -647,6 +649,7 @@ static void check_conf(struct menu *menu)
print_symbol_for_listconfig(sym);
break;
case helpnewconfig:
+ case helpallconfig:
printf("-----\n");
print_help(menu);
printf("-----\n");
@@ -678,6 +681,7 @@ static const struct option long_opts[] = {
{"alldefconfig", no_argument, &input_mode_opt, alldefconfig},
{"randconfig", no_argument, &input_mode_opt, randconfig},
{"listnewconfig", no_argument, &input_mode_opt, listnewconfig},
+ {"helpallconfig", no_argument, &input_mode_opt, helpallconfig},
{"helpnewconfig", no_argument, &input_mode_opt, helpnewconfig},
{"olddefconfig", no_argument, &input_mode_opt, olddefconfig},
{"yes2modconfig", no_argument, &input_mode_opt, yes2modconfig},
@@ -696,6 +700,7 @@ static void conf_usage(const char *progname)
printf("\n");
printf("Mode options:\n");
printf(" --listnewconfig List new options\n");
+ printf(" --helpallconfig List all options and help text\n");
printf(" --helpnewconfig List new options and help text\n");
printf(" --oldaskconfig Start a new configuration using a line-oriented program\n");
printf(" --oldconfig Update a configuration using a provided .config as base\n");
@@ -783,6 +788,7 @@ int main(int ac, char **av)
case oldaskconfig:
case oldconfig:
case listnewconfig:
+ case helpallconfig:
case helpnewconfig:
case olddefconfig:
case yes2modconfig:
@@ -888,6 +894,9 @@ int main(int ac, char **av)
check_conf(&rootmenu);
} while (conf_cnt);
break;
+ case helpallconfig:
+ check_conf(&rootmenu);
+ break;
case olddefconfig:
default:
break;
--
2.43.0
next prev parent reply other threads:[~2024-03-27 14:26 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-27 14:25 [RFC 0/2] kconfig: Add fzf fuzzy search for config options Markus Schneider-Pargmann
2024-03-27 14:25 ` Markus Schneider-Pargmann [this message]
2024-03-27 14:25 ` [RFC 2/2] scripts: Add fzfconfig helper script Markus Schneider-Pargmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240327142544.1728286-2-msp@baylibre.com \
--to=msp@baylibre.com \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=masahiroy@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.