From e581156dfc0b2835b1dc9dd0b23afd442052c1b3 Mon Sep 17 00:00:00 2001 From: Jonathan Mainguy Date: Wed, 9 Oct 2013 19:56:47 -0400 Subject: [PATCH] Added resp= option for svr4pkg to enable the -r option in pkgadd for response files --- library/packaging/svr4pkg | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/library/packaging/svr4pkg b/library/packaging/svr4pkg index 3f38d9db6a..e3c25bfac3 100644 --- a/library/packaging/svr4pkg +++ b/library/packaging/svr4pkg @@ -53,6 +53,9 @@ options: proxy: description: - HTTP[s] proxy to be used if C(src) is a URL. + resp: + description: + - Specifies the location of a response file to be used if package expects input on install. ''' EXAMPLES = ''' @@ -62,6 +65,9 @@ EXAMPLES = ''' # Install a package directly from an http site - svr4pkg: name=CSWpkgutil src=http://get.opencsw.org/now state=present +# Install a package with a response file +- svr4pkg: name=CSWggrep src=/tmp/third-party.pkg resp=/tmp/ggrep.response state=present + # Ensure that a package is not installed. - svr4pkg: name=SUNWgnome-sound-recorder state=absent ''' @@ -109,11 +115,13 @@ def run_command(module, cmd): cmd[0] = module.get_bin_path(progname, True) return module.run_command(cmd) -def package_install(module, name, src, proxy): +def package_install(module, name, src, proxy, resp): adminfile = create_admin_file() cmd = [ 'pkgadd', '-na', adminfile, '-d', src ] if proxy is not None: cmd += [ '-x', proxy ] + if resp is not None: + cmd += [ '-r', resp ] cmd.append(name) (rc, out, err) = run_command(module, cmd) os.unlink(adminfile) @@ -132,7 +140,8 @@ def main(): name = dict(required = True), state = dict(required = True, choices=['present', 'absent']), src = dict(default = None), - proxy = dict(default = None) + proxy = dict(default = None), + resp = dict(default = None) ), supports_check_mode=True ) @@ -140,6 +149,7 @@ def main(): name = module.params['name'] src = module.params['src'] proxy = module.params['proxy'] + resp = module.params['resp'] rc = None out = '' err = '' @@ -154,7 +164,7 @@ def main(): if not package_installed(module, name): if module.check_mode: module.exit_json(changed=True) - (rc, out, err) = package_install(module, name, src, proxy) + (rc, out, err) = package_install(module, name, src, proxy, resp) # Stdout is normally empty but for some packages can be # very long and is not often useful if len(out) > 75: