Re: [PATCHv2] kconfig: Add option to get the full help text with listnewconfig

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Nov 5, 2019 at 7:13 AM Laura Abbott <labbott@xxxxxxxxxx> wrote:
>
> make listnewconfig will list the individual options that need to be set.
> This is useful but there's no easy way to get the help text associated
> with the options at the same time. Introduce a new targe
> 'make helpnewconfig' which lists the full help text of all the
> new options as well. This makes it easier to automatically generate
> changes that are easy for humans to review. This command also adds
> markers between each option for easier parsing.
>
> Signed-off-by: Laura Abbott <labbott@xxxxxxxxxx>
> ---
> v2: Dropped rfc tag, renamed extendedlistnewconfig -> helpnewconfig.
> Added another missing help text.

Applied to linux-kbuild.
Thanks.



> ---
>  scripts/kconfig/Makefile |  5 ++++-
>  scripts/kconfig/conf.c   | 13 ++++++++++++-
>  2 files changed, 16 insertions(+), 2 deletions(-)
>
> diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
> index ef2f2336c469..71a956cec64a 100644
> --- a/scripts/kconfig/Makefile
> +++ b/scripts/kconfig/Makefile
> @@ -66,7 +66,9 @@ localyesconfig localmodconfig: $(obj)/conf
>  #  syncconfig has become an internal implementation detail and is now
>  #  deprecated for external use
>  simple-targets := oldconfig allnoconfig allyesconfig allmodconfig \
> -       alldefconfig randconfig listnewconfig olddefconfig syncconfig
> +       alldefconfig randconfig listnewconfig olddefconfig syncconfig \
> +       helpnewconfig
> +
>  PHONY += $(simple-targets)
>
>  $(simple-targets): $(obj)/conf
> @@ -134,6 +136,7 @@ help:
>         @echo  '  alldefconfig    - New config with all symbols set to default'
>         @echo  '  randconfig      - New config with random answer to all options'
>         @echo  '  listnewconfig   - List new options'
> +       @echo  '  helpnewconfig   - List new options and help text'
>         @echo  '  olddefconfig    - Same as oldconfig but sets new symbols to their'
>         @echo  '                    default value without prompting'
>         @echo  '  kvmconfig       - Enable additional options for kvm guest kernel support'
> diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
> index 40e16e871ae2..1f89bf1558ce 100644
> --- a/scripts/kconfig/conf.c
> +++ b/scripts/kconfig/conf.c
> @@ -32,6 +32,7 @@ enum input_mode {
>         defconfig,
>         savedefconfig,
>         listnewconfig,
> +       helpnewconfig,
>         olddefconfig,
>  };
>  static enum input_mode input_mode = oldaskconfig;
> @@ -434,6 +435,11 @@ static void check_conf(struct menu *menu)
>                                                 printf("%s%s=%s\n", CONFIG_, sym->name, str);
>                                         }
>                                 }
> +                       } else if (input_mode == helpnewconfig) {
> +                               printf("-----\n");
> +                               print_help(menu);
> +                               printf("-----\n");
> +
>                         } else {
>                                 if (!conf_cnt++)
>                                         printf("*\n* Restart config...\n*\n");
> @@ -459,6 +465,7 @@ static struct option long_opts[] = {
>         {"alldefconfig",    no_argument,       NULL, alldefconfig},
>         {"randconfig",      no_argument,       NULL, randconfig},
>         {"listnewconfig",   no_argument,       NULL, listnewconfig},
> +       {"helpnewconfig",   no_argument,       NULL, helpnewconfig},
>         {"olddefconfig",    no_argument,       NULL, olddefconfig},
>         {NULL, 0, NULL, 0}
>  };
> @@ -469,6 +476,7 @@ static void conf_usage(const char *progname)
>         printf("Usage: %s [-s] [option] <kconfig-file>\n", progname);
>         printf("[option] is _one_ of the following:\n");
>         printf("  --listnewconfig         List new options\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");
>         printf("  --syncconfig            Similar to oldconfig but generates configuration in\n"
> @@ -543,6 +551,7 @@ int main(int ac, char **av)
>                 case allmodconfig:
>                 case alldefconfig:
>                 case listnewconfig:
> +               case helpnewconfig:
>                 case olddefconfig:
>                         break;
>                 case '?':
> @@ -576,6 +585,7 @@ int main(int ac, char **av)
>         case oldaskconfig:
>         case oldconfig:
>         case listnewconfig:
> +       case helpnewconfig:
>         case olddefconfig:
>                 conf_read(NULL);
>                 break;
> @@ -657,6 +667,7 @@ int main(int ac, char **av)
>                 /* fall through */
>         case oldconfig:
>         case listnewconfig:
> +       case helpnewconfig:
>         case syncconfig:
>                 /* Update until a loop caused no more changes */
>                 do {
> @@ -675,7 +686,7 @@ int main(int ac, char **av)
>                                 defconfig_file);
>                         return 1;
>                 }
> -       } else if (input_mode != listnewconfig) {
> +       } else if (input_mode != listnewconfig && input_mode != helpnewconfig) {
>                 if (!no_conf_write && conf_write(NULL)) {
>                         fprintf(stderr, "\n*** Error during writing of the configuration.\n\n");
>                         exit(1);
> --
> 2.21.0
>


-- 
Best Regards
Masahiro Yamada



[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux