From 9021e7416d66d3853c4be655b2d54a13f7f7af21 Mon Sep 17 00:00:00 2001 From: snail59 <25689269+snail59@users.noreply.github.com> Date: Wed, 6 Sep 2023 19:11:43 +0200 Subject: [PATCH] community.general.make: (#7180) * community.general.make: allows parameters without value closes #7178 * add changelog fragment for community.general.make * correction: v != none -> v is not None * update fragment changelog as per developer request * add an example * document the modification * update example with comments as per maintainer request --- .../fragments/7180-make_params_without_value.yml | 2 ++ plugins/modules/make.py | 15 ++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 changelogs/fragments/7180-make_params_without_value.yml diff --git a/changelogs/fragments/7180-make_params_without_value.yml b/changelogs/fragments/7180-make_params_without_value.yml new file mode 100644 index 0000000000..114b5b48c8 --- /dev/null +++ b/changelogs/fragments/7180-make_params_without_value.yml @@ -0,0 +1,2 @@ +minor_changes: + - make - allows ``params`` to be used without value (https://github.com/ansible-collections/community.general/pull/7180). diff --git a/plugins/modules/make.py b/plugins/modules/make.py index 665457fd6d..39392afca6 100644 --- a/plugins/modules/make.py +++ b/plugins/modules/make.py @@ -49,6 +49,7 @@ options: params: description: - Any extra parameters to pass to make. + - If the value is empty, only the key will be used. For example, V(FOO:) will produce V(FOO), not V(FOO=). type: dict target: description: @@ -90,6 +91,18 @@ EXAMPLES = r''' chdir: /home/ubuntu/cool-project target: all file: /some-project/Makefile + +- name: build arm64 kernel on FreeBSD, with 16 parallel jobs + community.general.make: + chdir: /usr/src + jobs: 16 + target: buildkernel + params: + # This adds -DWITH_FDT to the command line: + -DWITH_FDT: + # The following adds TARGET=arm64 TARGET_ARCH=aarch64 to the command line: + TARGET: arm64 + TARGET_ARCH: aarch64 ''' RETURN = r''' @@ -190,7 +203,7 @@ def main(): # Fall back to system make make_path = module.get_bin_path('make', required=True) if module.params['params'] is not None: - make_parameters = [k + '=' + str(v) for k, v in iteritems(module.params['params'])] + make_parameters = [k + (('=' + str(v)) if v is not None else '') for k, v in iteritems(module.params['params'])] else: make_parameters = []