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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®