cpanm: add return value cpanm_version (#9061)
* add return value version * add changelog frag * fix indentation * fix RV name and tests * Update plugins/modules/cpanm.py Co-authored-by: Felix Fontein <felix@fontein.de> --------- Co-authored-by: Felix Fontein <felix@fontein.de>pull/9098/head
parent
9553dd9ddf
commit
8a2ac4f1eb
|
@ -0,0 +1,2 @@
|
||||||
|
minor_changes:
|
||||||
|
- cpanm - add return value ``cpanm_version`` (https://github.com/ansible-collections/community.general/pull/9061).
|
|
@ -142,7 +142,19 @@ EXAMPLES = """
|
||||||
version: '1.0'
|
version: '1.0'
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
RETURN = """
|
||||||
|
---
|
||||||
|
cpanm_version:
|
||||||
|
description: Version of CPANMinus.
|
||||||
|
type: str
|
||||||
|
returned: always
|
||||||
|
sample: "1.7047"
|
||||||
|
version_added: 10.0.0
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
import re
|
||||||
|
|
||||||
from ansible_collections.community.general.plugins.module_utils.cmd_runner import CmdRunner, cmd_runner_fmt
|
from ansible_collections.community.general.plugins.module_utils.cmd_runner import CmdRunner, cmd_runner_fmt
|
||||||
from ansible_collections.community.general.plugins.module_utils.module_helper import ModuleHelper
|
from ansible_collections.community.general.plugins.module_utils.module_helper import ModuleHelper
|
||||||
|
@ -175,6 +187,7 @@ class CPANMinus(ModuleHelper):
|
||||||
mirror_only=cmd_runner_fmt.as_bool("--mirror-only"),
|
mirror_only=cmd_runner_fmt.as_bool("--mirror-only"),
|
||||||
installdeps=cmd_runner_fmt.as_bool("--installdeps"),
|
installdeps=cmd_runner_fmt.as_bool("--installdeps"),
|
||||||
pkg_spec=cmd_runner_fmt.as_list(),
|
pkg_spec=cmd_runner_fmt.as_list(),
|
||||||
|
cpanm_version=cmd_runner_fmt.as_fixed("--version"),
|
||||||
)
|
)
|
||||||
use_old_vardict = False
|
use_old_vardict = False
|
||||||
|
|
||||||
|
@ -191,6 +204,14 @@ class CPANMinus(ModuleHelper):
|
||||||
self.runner = CmdRunner(self.module, self.command, self.command_args_formats, check_rc=True)
|
self.runner = CmdRunner(self.module, self.command, self.command_args_formats, check_rc=True)
|
||||||
self.vars.binary = self.runner.binary
|
self.vars.binary = self.runner.binary
|
||||||
|
|
||||||
|
with self.runner("cpanm_version") as ctx:
|
||||||
|
rc, out, err = ctx.run()
|
||||||
|
line = out.split('\n')[0]
|
||||||
|
match = re.search(r"version\s+([\d\.]+)\s+", line)
|
||||||
|
if not match:
|
||||||
|
self.do_raise("Failed to determine version number. First line of output: {0}".format(line))
|
||||||
|
self.vars.cpanm_version = match.group(1)
|
||||||
|
|
||||||
def _is_package_installed(self, name, locallib, version):
|
def _is_package_installed(self, name, locallib, version):
|
||||||
def process(rc, out, err):
|
def process(rc, out, err):
|
||||||
return rc == 0
|
return rc == 0
|
||||||
|
|
|
@ -10,15 +10,23 @@
|
||||||
mode: compatibility
|
mode: compatibility
|
||||||
output:
|
output:
|
||||||
changed: true
|
changed: true
|
||||||
|
cpanm_version: "1.7047"
|
||||||
mocks:
|
mocks:
|
||||||
run_command:
|
run_command:
|
||||||
|
- command: [/testbin/cpanm, --version]
|
||||||
|
environ: &env-def-true {environ_update: {LANGUAGE: C, LC_ALL: C}, check_rc: true}
|
||||||
|
rc: 0
|
||||||
|
out: |
|
||||||
|
cpanm (App::cpanminus) version 1.7047 (/usr/local/bin/cpanm)
|
||||||
|
perl version 5.041005 (/usr/local/bin/perl)
|
||||||
|
err: ""
|
||||||
- command: [/testbin/perl, -le, 'use Dancer;']
|
- command: [/testbin/perl, -le, 'use Dancer;']
|
||||||
environ: &env-def-false {environ_update: {LANGUAGE: C, LC_ALL: C}, check_rc: false}
|
environ: &env-def-false {environ_update: {LANGUAGE: C, LC_ALL: C}, check_rc: false}
|
||||||
rc: 2
|
rc: 2
|
||||||
out: ""
|
out: ""
|
||||||
err: "error, not installed"
|
err: "error, not installed"
|
||||||
- command: [/testbin/cpanm, Dancer]
|
- command: [/testbin/cpanm, Dancer]
|
||||||
environ: &env-def-true {environ_update: {LANGUAGE: C, LC_ALL: C}, check_rc: true}
|
environ: *env-def-true
|
||||||
rc: 0
|
rc: 0
|
||||||
out: ""
|
out: ""
|
||||||
err: ""
|
err: ""
|
||||||
|
@ -30,6 +38,13 @@
|
||||||
changed: false
|
changed: false
|
||||||
mocks:
|
mocks:
|
||||||
run_command:
|
run_command:
|
||||||
|
- command: [/testbin/cpanm, --version]
|
||||||
|
environ: *env-def-true
|
||||||
|
rc: 0
|
||||||
|
out: |
|
||||||
|
cpanm (App::cpanminus) version 1.7047 (/usr/local/bin/cpanm)
|
||||||
|
perl version 5.041005 (/usr/local/bin/perl)
|
||||||
|
err: ""
|
||||||
- command: [/testbin/perl, -le, 'use Dancer;']
|
- command: [/testbin/perl, -le, 'use Dancer;']
|
||||||
environ: *env-def-false
|
environ: *env-def-false
|
||||||
rc: 0
|
rc: 0
|
||||||
|
@ -42,6 +57,13 @@
|
||||||
changed: true
|
changed: true
|
||||||
mocks:
|
mocks:
|
||||||
run_command:
|
run_command:
|
||||||
|
- command: [/testbin/cpanm, --version]
|
||||||
|
environ: *env-def-true
|
||||||
|
rc: 0
|
||||||
|
out: |
|
||||||
|
cpanm (App::cpanminus) version 1.7047 (/usr/local/bin/cpanm)
|
||||||
|
perl version 5.041005 (/usr/local/bin/perl)
|
||||||
|
err: ""
|
||||||
- command: [/testbin/cpanm, Dancer]
|
- command: [/testbin/cpanm, Dancer]
|
||||||
environ: *env-def-true
|
environ: *env-def-true
|
||||||
rc: 0
|
rc: 0
|
||||||
|
@ -55,6 +77,13 @@
|
||||||
changed: true
|
changed: true
|
||||||
mocks:
|
mocks:
|
||||||
run_command:
|
run_command:
|
||||||
|
- command: [/testbin/cpanm, --version]
|
||||||
|
environ: *env-def-true
|
||||||
|
rc: 0
|
||||||
|
out: |
|
||||||
|
cpanm (App::cpanminus) version 1.7047 (/usr/local/bin/cpanm)
|
||||||
|
perl version 5.041005 (/usr/local/bin/perl)
|
||||||
|
err: ""
|
||||||
- command: [/testbin/cpanm, MIYAGAWA/Plack-0.99_05.tar.gz]
|
- command: [/testbin/cpanm, MIYAGAWA/Plack-0.99_05.tar.gz]
|
||||||
environ: *env-def-true
|
environ: *env-def-true
|
||||||
rc: 0
|
rc: 0
|
||||||
|
@ -67,6 +96,13 @@
|
||||||
changed: true
|
changed: true
|
||||||
mocks:
|
mocks:
|
||||||
run_command:
|
run_command:
|
||||||
|
- command: [/testbin/cpanm, --version]
|
||||||
|
environ: *env-def-true
|
||||||
|
rc: 0
|
||||||
|
out: |
|
||||||
|
cpanm (App::cpanminus) version 1.7047 (/usr/local/bin/cpanm)
|
||||||
|
perl version 5.041005 (/usr/local/bin/perl)
|
||||||
|
err: ""
|
||||||
- command: [/testbin/cpanm, MIYAGAWA/Plack-0.99_05.tar.gz]
|
- command: [/testbin/cpanm, MIYAGAWA/Plack-0.99_05.tar.gz]
|
||||||
environ: *env-def-true
|
environ: *env-def-true
|
||||||
rc: 0
|
rc: 0
|
||||||
|
@ -81,6 +117,13 @@
|
||||||
changed: true
|
changed: true
|
||||||
mocks:
|
mocks:
|
||||||
run_command:
|
run_command:
|
||||||
|
- command: [/testbin/cpanm, --version]
|
||||||
|
environ: *env-def-true
|
||||||
|
rc: 0
|
||||||
|
out: |
|
||||||
|
cpanm (App::cpanminus) version 1.7047 (/usr/local/bin/cpanm)
|
||||||
|
perl version 5.041005 (/usr/local/bin/perl)
|
||||||
|
err: ""
|
||||||
- command: [/testbin/cpanm, --local-lib, /srv/webapps/my_app/extlib, Dancer]
|
- command: [/testbin/cpanm, --local-lib, /srv/webapps/my_app/extlib, Dancer]
|
||||||
environ: *env-def-true
|
environ: *env-def-true
|
||||||
rc: 0
|
rc: 0
|
||||||
|
@ -94,6 +137,13 @@
|
||||||
changed: true
|
changed: true
|
||||||
mocks:
|
mocks:
|
||||||
run_command:
|
run_command:
|
||||||
|
- command: [/testbin/cpanm, --version]
|
||||||
|
environ: *env-def-true
|
||||||
|
rc: 0
|
||||||
|
out: |
|
||||||
|
cpanm (App::cpanminus) version 1.7047 (/usr/local/bin/cpanm)
|
||||||
|
perl version 5.041005 (/usr/local/bin/perl)
|
||||||
|
err: ""
|
||||||
- command: [/testbin/cpanm, /srv/webapps/my_app/src/]
|
- command: [/testbin/cpanm, /srv/webapps/my_app/src/]
|
||||||
environ: *env-def-true
|
environ: *env-def-true
|
||||||
rc: 0
|
rc: 0
|
||||||
|
@ -109,6 +159,13 @@
|
||||||
changed: true
|
changed: true
|
||||||
mocks:
|
mocks:
|
||||||
run_command:
|
run_command:
|
||||||
|
- command: [/testbin/cpanm, --version]
|
||||||
|
environ: *env-def-true
|
||||||
|
rc: 0
|
||||||
|
out: |
|
||||||
|
cpanm (App::cpanminus) version 1.7047 (/usr/local/bin/cpanm)
|
||||||
|
perl version 5.041005 (/usr/local/bin/perl)
|
||||||
|
err: ""
|
||||||
- command: [/testbin/cpanm, --notest, --local-lib, /srv/webapps/my_app/extlib, Dancer]
|
- command: [/testbin/cpanm, --notest, --local-lib, /srv/webapps/my_app/extlib, Dancer]
|
||||||
environ: *env-def-true
|
environ: *env-def-true
|
||||||
rc: 0
|
rc: 0
|
||||||
|
@ -123,6 +180,13 @@
|
||||||
changed: true
|
changed: true
|
||||||
mocks:
|
mocks:
|
||||||
run_command:
|
run_command:
|
||||||
|
- command: [/testbin/cpanm, --version]
|
||||||
|
environ: *env-def-true
|
||||||
|
rc: 0
|
||||||
|
out: |
|
||||||
|
cpanm (App::cpanminus) version 1.7047 (/usr/local/bin/cpanm)
|
||||||
|
perl version 5.041005 (/usr/local/bin/perl)
|
||||||
|
err: ""
|
||||||
- command: [/testbin/cpanm, --mirror, "http://cpan.cpantesters.org/", Dancer]
|
- command: [/testbin/cpanm, --mirror, "http://cpan.cpantesters.org/", Dancer]
|
||||||
environ: *env-def-true
|
environ: *env-def-true
|
||||||
rc: 0
|
rc: 0
|
||||||
|
@ -146,6 +210,13 @@
|
||||||
changed: true
|
changed: true
|
||||||
mocks:
|
mocks:
|
||||||
run_command:
|
run_command:
|
||||||
|
- command: [/testbin/cpanm, --version]
|
||||||
|
environ: *env-def-true
|
||||||
|
rc: 0
|
||||||
|
out: |
|
||||||
|
cpanm (App::cpanminus) version 1.7047 (/usr/local/bin/cpanm)
|
||||||
|
perl version 5.041005 (/usr/local/bin/perl)
|
||||||
|
err: ""
|
||||||
- command: [/testbin/cpanm, Dancer~1.0]
|
- command: [/testbin/cpanm, Dancer~1.0]
|
||||||
environ: *env-def-true
|
environ: *env-def-true
|
||||||
rc: 0
|
rc: 0
|
||||||
|
@ -160,6 +231,13 @@
|
||||||
changed: true
|
changed: true
|
||||||
mocks:
|
mocks:
|
||||||
run_command:
|
run_command:
|
||||||
|
- command: [/testbin/cpanm, --version]
|
||||||
|
environ: *env-def-true
|
||||||
|
rc: 0
|
||||||
|
out: |
|
||||||
|
cpanm (App::cpanminus) version 1.7047 (/usr/local/bin/cpanm)
|
||||||
|
perl version 5.041005 (/usr/local/bin/perl)
|
||||||
|
err: ""
|
||||||
- command: [/testbin/cpanm, Dancer~1.5]
|
- command: [/testbin/cpanm, Dancer~1.5]
|
||||||
environ: *env-def-true
|
environ: *env-def-true
|
||||||
rc: 0
|
rc: 0
|
||||||
|
@ -174,6 +252,13 @@
|
||||||
changed: true
|
changed: true
|
||||||
mocks:
|
mocks:
|
||||||
run_command:
|
run_command:
|
||||||
|
- command: [/testbin/cpanm, --version]
|
||||||
|
environ: *env-def-true
|
||||||
|
rc: 0
|
||||||
|
out: |
|
||||||
|
cpanm (App::cpanminus) version 1.7047 (/usr/local/bin/cpanm)
|
||||||
|
perl version 5.041005 (/usr/local/bin/perl)
|
||||||
|
err: ""
|
||||||
- command: [/testbin/cpanm, Dancer@1.7]
|
- command: [/testbin/cpanm, Dancer@1.7]
|
||||||
environ: *env-def-true
|
environ: *env-def-true
|
||||||
rc: 0
|
rc: 0
|
||||||
|
@ -188,7 +273,14 @@
|
||||||
failed: true
|
failed: true
|
||||||
msg: parameter 'version' must not be used when installing from a file
|
msg: parameter 'version' must not be used when installing from a file
|
||||||
mocks:
|
mocks:
|
||||||
run_command: []
|
run_command:
|
||||||
|
- command: [/testbin/cpanm, --version]
|
||||||
|
environ: *env-def-true
|
||||||
|
rc: 0
|
||||||
|
out: |
|
||||||
|
cpanm (App::cpanminus) version 1.7047 (/usr/local/bin/cpanm)
|
||||||
|
perl version 5.041005 (/usr/local/bin/perl)
|
||||||
|
err: ""
|
||||||
- id: install_specific_version_from_directory_error
|
- id: install_specific_version_from_directory_error
|
||||||
input:
|
input:
|
||||||
from_path: ~/
|
from_path: ~/
|
||||||
|
@ -198,7 +290,14 @@
|
||||||
failed: true
|
failed: true
|
||||||
msg: parameter 'version' must not be used when installing from a directory
|
msg: parameter 'version' must not be used when installing from a directory
|
||||||
mocks:
|
mocks:
|
||||||
run_command: []
|
run_command:
|
||||||
|
- command: [/testbin/cpanm, --version]
|
||||||
|
environ: *env-def-true
|
||||||
|
rc: 0
|
||||||
|
out: |
|
||||||
|
cpanm (App::cpanminus) version 1.7047 (/usr/local/bin/cpanm)
|
||||||
|
perl version 5.041005 (/usr/local/bin/perl)
|
||||||
|
err: ""
|
||||||
- id: install_specific_version_from_git_url_explicit
|
- id: install_specific_version_from_git_url_explicit
|
||||||
input:
|
input:
|
||||||
name: "git://github.com/plack/Plack.git"
|
name: "git://github.com/plack/Plack.git"
|
||||||
|
@ -208,6 +307,13 @@
|
||||||
changed: true
|
changed: true
|
||||||
mocks:
|
mocks:
|
||||||
run_command:
|
run_command:
|
||||||
|
- command: [/testbin/cpanm, --version]
|
||||||
|
environ: *env-def-true
|
||||||
|
rc: 0
|
||||||
|
out: |
|
||||||
|
cpanm (App::cpanminus) version 1.7047 (/usr/local/bin/cpanm)
|
||||||
|
perl version 5.041005 (/usr/local/bin/perl)
|
||||||
|
err: ""
|
||||||
- command: [/testbin/cpanm, "git://github.com/plack/Plack.git@1.7"]
|
- command: [/testbin/cpanm, "git://github.com/plack/Plack.git@1.7"]
|
||||||
environ: *env-def-true
|
environ: *env-def-true
|
||||||
rc: 0
|
rc: 0
|
||||||
|
@ -222,6 +328,13 @@
|
||||||
changed: true
|
changed: true
|
||||||
mocks:
|
mocks:
|
||||||
run_command:
|
run_command:
|
||||||
|
- command: [/testbin/cpanm, --version]
|
||||||
|
environ: *env-def-true
|
||||||
|
rc: 0
|
||||||
|
out: |
|
||||||
|
cpanm (App::cpanminus) version 1.7047 (/usr/local/bin/cpanm)
|
||||||
|
perl version 5.041005 (/usr/local/bin/perl)
|
||||||
|
err: ""
|
||||||
- command: [/testbin/cpanm, "git://github.com/plack/Plack.git@2.5"]
|
- command: [/testbin/cpanm, "git://github.com/plack/Plack.git@2.5"]
|
||||||
environ: *env-def-true
|
environ: *env-def-true
|
||||||
rc: 0
|
rc: 0
|
||||||
|
@ -236,4 +349,11 @@
|
||||||
failed: true
|
failed: true
|
||||||
msg: operator '~' not allowed in version parameter when installing from git repository
|
msg: operator '~' not allowed in version parameter when installing from git repository
|
||||||
mocks:
|
mocks:
|
||||||
run_command: []
|
run_command:
|
||||||
|
- command: [/testbin/cpanm, --version]
|
||||||
|
environ: *env-def-true
|
||||||
|
rc: 0
|
||||||
|
out: |
|
||||||
|
cpanm (App::cpanminus) version 1.7047 (/usr/local/bin/cpanm)
|
||||||
|
perl version 5.041005 (/usr/local/bin/perl)
|
||||||
|
err: ""
|
||||||
|
|
Loading…
Reference in New Issue