From 796016b5d068a6cc759465d72607172b05f185b7 Mon Sep 17 00:00:00 2001 From: Sorin Sbarnea Date: Thu, 18 Mar 2021 12:37:26 +0000 Subject: [PATCH] Allow user to extend kinds without overriding defaults Instead of overriding all defaults when defining new mappings, the user defined ones are added at the top, so you do not have redefine all of them if you only want to tune one. --- .ansible-lint | 10 ++++++++++ src/ansiblelint/cli.py | 6 ++++++ src/ansiblelint/config.py | 2 +- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/.ansible-lint b/.ansible-lint index eca18d66925..8c5fed443eb 100644 --- a/.ansible-lint +++ b/.ansible-lint @@ -59,3 +59,13 @@ extra_vars: # Uncomment to enforce action validation with tasks, usually is not # needed as Ansible syntax check also covers it. # skip_action_validation: false + +# List of additional kind:pattern to be added at the top of the default +# match list, first match determines the file kind. +# kinds: +# - playbook: "**/examples/*.{yml,yaml}" +# - galaxy: "**/folder/galaxy.yml" +# - tasks: "**/tasks/*.yml" +# - vars: "**/vars/*.yml" +# - meta: "**/meta/main.yml" +# - yaml: "**/*.YML" diff --git a/src/ansiblelint/cli.py b/src/ansiblelint/cli.py index 08238de6dcd..c2f6dc2ba17 100644 --- a/src/ansiblelint/cli.py +++ b/src/ansiblelint/cli.py @@ -10,6 +10,7 @@ import yaml +from ansiblelint.config import DEFAULT_KINDS from ansiblelint.constants import ( CUSTOM_RULESDIR_ENVVAR, DEFAULT_RULESDIR, @@ -358,6 +359,11 @@ def merge_config(file_config: Dict[Any, Any], cli_config: Namespace) -> Namespac for entry, value in file_config.items(): setattr(cli_config, entry, value) + # append default kinds to the custom list + kinds = getattr(file_config, 'kinds', []) + kinds.extend(DEFAULT_KINDS) + setattr(cli_config, 'kinds', kinds) + return cli_config diff --git a/src/ansiblelint/config.py b/src/ansiblelint/config.py index 1ffb2b30f1d..c3b996960dc 100644 --- a/src/ansiblelint/config.py +++ b/src/ansiblelint/config.py @@ -67,7 +67,7 @@ tags=[], verbosity=False, warn_list=[], - kinds=DEFAULT_KINDS, + kinds=[], mock_modules=[], mock_roles=[], loop_var_prefix=None,