Add --override-arguments option to win_chocolatey module (#65101)
* Add --override-arguments option to win_chocolatey module * Fix version and argument type * Added changelog fragment and tests
This commit is contained in:
parent
63b94fca7e
commit
a8fa432096
5 changed files with 42 additions and 11 deletions
2
changelogs/fragments/win_chocolatey-override_args.yaml
Normal file
2
changelogs/fragments/win_chocolatey-override_args.yaml
Normal file
|
@ -0,0 +1,2 @@
|
|||
minor_changes:
|
||||
- win_chocolatey - Add ``override_args`` option to allow overriding builtin install arguments for a Chocolatey package
|
|
@ -19,11 +19,12 @@ $spec = @{
|
|||
allow_multiple = @{ type = "bool"; default = $false }
|
||||
allow_prerelease = @{ type = "bool"; default = $false }
|
||||
architecture = @{ type = "str"; default = "default"; choices = "default", "x86" }
|
||||
install_args = @{ type = "str" }
|
||||
force = @{ type = "bool"; default = $false }
|
||||
ignore_checksums = @{ type = "bool"; default = $false }
|
||||
ignore_dependencies = @{ type = "bool"; default = $false }
|
||||
force = @{ type = "bool"; default = $false }
|
||||
install_args = @{ type = "str" }
|
||||
name = @{ type = "list"; elements = "str"; required = $true }
|
||||
override_args = @{ type = "bool"; default = $false }
|
||||
package_params = @{ type = "str"; aliases = @("params") }
|
||||
pinned = @{ type = "bool" }
|
||||
proxy_url = @{ type = "str" }
|
||||
|
@ -46,11 +47,12 @@ $allow_empty_checksums = $module.Params.allow_empty_checksums
|
|||
$allow_multiple = $module.Params.allow_multiple
|
||||
$allow_prerelease = $module.Params.allow_prerelease
|
||||
$architecture = $module.Params.architecture
|
||||
$install_args = $module.Params.install_args
|
||||
$force = $module.Params.force
|
||||
$ignore_checksums = $module.Params.ignore_checksums
|
||||
$ignore_dependencies = $module.Params.ignore_dependencies
|
||||
$force = $module.Params.force
|
||||
$install_args = $module.Params.install_args
|
||||
$name = $module.Params.name
|
||||
$override_args = $module.Params.override_args
|
||||
$package_params = $module.Params.package_params
|
||||
$pinned = $module.Params.pinned
|
||||
$proxy_url = $module.Params.proxy_url
|
||||
|
@ -101,6 +103,7 @@ Function Get-InstallChocolateyArguments {
|
|||
[bool]$force,
|
||||
[bool]$ignore_dependencies,
|
||||
[String]$install_args,
|
||||
[bool]$override_args,
|
||||
[String]$package_params,
|
||||
[String]$proxy_url,
|
||||
[String]$proxy_username,
|
||||
|
@ -146,6 +149,9 @@ Function Get-InstallChocolateyArguments {
|
|||
$arguments.Add("--install-arguments") > $null
|
||||
$arguments.add($install_args) > $null
|
||||
}
|
||||
if ($override_args) {
|
||||
$arguments.Add("--override-arguments") > $null
|
||||
}
|
||||
if ($package_params) {
|
||||
$arguments.Add("--package-parameters") > $null
|
||||
$arguments.Add($package_params) > $null
|
||||
|
@ -469,6 +475,7 @@ Function Update-ChocolateyPackage {
|
|||
[bool]$ignore_checksums,
|
||||
[bool]$ignore_dependencies,
|
||||
[String]$install_args,
|
||||
[bool]$override_args,
|
||||
[String]$package_params,
|
||||
[String]$proxy_url,
|
||||
[String]$proxy_username,
|
||||
|
@ -494,6 +501,7 @@ Function Update-ChocolateyPackage {
|
|||
ignore_checksums = $ignore_checksums
|
||||
ignore_dependencies = $ignore_dependencies
|
||||
install_args = $install_args
|
||||
override_args = $override_args
|
||||
package_params = $package_params
|
||||
proxy_url = $proxy_url
|
||||
proxy_username = $proxy_username
|
||||
|
@ -544,6 +552,7 @@ Function Install-ChocolateyPackage {
|
|||
[bool]$ignore_checksums,
|
||||
[bool]$ignore_dependencies,
|
||||
[String]$install_args,
|
||||
[bool]$override_args,
|
||||
[String]$package_params,
|
||||
[String]$proxy_url,
|
||||
[String]$proxy_username,
|
||||
|
@ -568,6 +577,7 @@ Function Install-ChocolateyPackage {
|
|||
ignore_checksums = $ignore_checksums
|
||||
ignore_dependencies = $ignore_dependencies
|
||||
install_args = $install_args
|
||||
override_args = $override_args
|
||||
package_params = $package_params
|
||||
proxy_url = $proxy_url
|
||||
proxy_username = $proxy_username
|
||||
|
@ -736,6 +746,7 @@ if ($state -in @("downgrade", "latest", "present", "reinstalled")) {
|
|||
ignore_checksums = $ignore_checksums
|
||||
ignore_dependencies = $ignore_dependencies
|
||||
install_args = $install_args
|
||||
override_args = $override_args
|
||||
package_params = $package_params
|
||||
proxy_url = $proxy_url
|
||||
proxy_username = $proxy_username
|
||||
|
|
|
@ -65,13 +65,6 @@ options:
|
|||
made.
|
||||
type: bool
|
||||
default: no
|
||||
install_args:
|
||||
description:
|
||||
- Arguments to pass to the native installer.
|
||||
- These are arguments that are passed directly to the installer the
|
||||
Chocolatey package runs, this is generally an advanced option.
|
||||
type: str
|
||||
version_added: '2.1'
|
||||
ignore_checksums:
|
||||
description:
|
||||
- Ignore the checksums provided by the package.
|
||||
|
@ -86,12 +79,26 @@ options:
|
|||
type: bool
|
||||
default: no
|
||||
version_added: '2.1'
|
||||
install_args:
|
||||
description:
|
||||
- Arguments to pass to the native installer.
|
||||
- These are arguments that are passed directly to the installer the
|
||||
Chocolatey package runs, this is generally an advanced option.
|
||||
type: str
|
||||
version_added: '2.1'
|
||||
name:
|
||||
description:
|
||||
- Name of the package(s) to be installed.
|
||||
- Set to C(all) to run the action on all the installed packages.
|
||||
type: list
|
||||
required: yes
|
||||
override_args:
|
||||
description:
|
||||
- Override arguments of native installer with arguments provided by user.
|
||||
- Should install arguments be used exclusively without appending
|
||||
to current package passed arguments.
|
||||
type: bool
|
||||
version_added: '2.10'
|
||||
package_params:
|
||||
description:
|
||||
- Parameters to pass to the package.
|
||||
|
|
|
@ -25,6 +25,11 @@ if ($env:ChocolateyForceX86) {
|
|||
} else {
|
||||
$force_x86 = $false
|
||||
}
|
||||
if ($env:ChocolateyInstallOverride) {
|
||||
$override_args = $true
|
||||
} else {
|
||||
$override_args = $false
|
||||
}
|
||||
#$process_env = Get-EnvironmentVariableNames -Scope Process
|
||||
#$env_vars = @{}
|
||||
#foreach ($name in $process_env) {
|
||||
|
@ -39,6 +44,7 @@ $package_info = @{
|
|||
force_x86 = $force_x86
|
||||
ignore_checksums = $ignore_checksums
|
||||
install_args = $env:ChocolateyInstallArguments
|
||||
override_args = $override_args
|
||||
package_params = Get-PackageParameters
|
||||
proxy_url = $env:ChocolateyProxyLocation
|
||||
source = $source
|
||||
|
|
|
@ -55,6 +55,7 @@
|
|||
- (install_actual_info.stdout|from_json).force_x86 == False
|
||||
- (install_actual_info.stdout|from_json).ignore_checksums == False
|
||||
- (install_actual_info.stdout|from_json).install_args == None
|
||||
- (install_actual_info.stdout|from_json).override_args == False
|
||||
- (install_actual_info.stdout|from_json).package_params == {}
|
||||
- (install_actual_info.stdout|from_json).proxy_url == None
|
||||
- (install_actual_info.stdout|from_json).source == "normal"
|
||||
|
@ -151,6 +152,7 @@
|
|||
- (install_multiple_package1.stdout|from_json).force_x86 == False
|
||||
- (install_multiple_package1.stdout|from_json).ignore_checksums == False
|
||||
- (install_multiple_package1.stdout|from_json).install_args == None
|
||||
- (install_multiple_package1.stdout|from_json).override_args == False
|
||||
- (install_multiple_package1.stdout|from_json).package_params == {}
|
||||
- (install_multiple_package1.stdout|from_json).proxy_url == None
|
||||
- (install_multiple_package1.stdout|from_json).source == "normal"
|
||||
|
@ -160,6 +162,7 @@
|
|||
- (install_multiple_package2.stdout|from_json).force_x86 == False
|
||||
- (install_multiple_package2.stdout|from_json).ignore_checksums == False
|
||||
- (install_multiple_package2.stdout|from_json).install_args == None
|
||||
- (install_multiple_package2.stdout|from_json).override_args == False
|
||||
- (install_multiple_package2.stdout|from_json).package_params == {}
|
||||
- (install_multiple_package2.stdout|from_json).proxy_url == None
|
||||
- (install_multiple_package2.stdout|from_json).source == "normal"
|
||||
|
@ -221,6 +224,7 @@
|
|||
name: '{{ test_choco_package1 }}'
|
||||
state: present
|
||||
install_args: /install_arg 1 /install_arg 2
|
||||
override_args: yes
|
||||
package_params: /param1 /param2:value
|
||||
allow_empty_checksums: yes
|
||||
architecture: x86
|
||||
|
@ -248,6 +252,7 @@
|
|||
- (install_params_info.stdout|from_json).force_x86 == True
|
||||
- (install_params_info.stdout|from_json).ignore_checksums == True
|
||||
- (install_params_info.stdout|from_json).install_args == "/install_arg 1 /install_arg 2"
|
||||
- (install_params_info.stdout|from_json).override_args == True
|
||||
- (install_params_info.stdout|from_json).package_params.keys()|count == 2
|
||||
- (install_params_info.stdout|from_json).package_params.param1 == True
|
||||
- (install_params_info.stdout|from_json).package_params.param2 == "value"
|
||||
|
|
Loading…
Reference in a new issue