win_chocolatey: Add install_args, params and ignoredependencies

This commit is contained in:
Guido Lorenz 2015-11-27 15:49:57 +01:00 committed by Matt Clay
parent cb338ccb46
commit 633773f386
2 changed files with 72 additions and 4 deletions

View file

@ -34,6 +34,11 @@ if ($source) {$source = $source.Tolower()}
$showlog = Get-Attr -obj $params -name showlog -default "false" | ConvertTo-Bool $showlog = Get-Attr -obj $params -name showlog -default "false" | ConvertTo-Bool
$state = Get-Attr -obj $params -name state -default "present" $state = Get-Attr -obj $params -name state -default "present"
$installargs = Get-Attr -obj $params -name install_args -default $null
$packageparams = Get-Attr -obj $params -name params -default $null
$ignoredependencies = Get-Attr -obj $params -name ignore_dependencies -default "false" | ConvertTo-Bool
if ("present","absent" -notcontains $state) if ("present","absent" -notcontains $state)
{ {
Fail-Json $result "state is $state; must be present or absent" Fail-Json $result "state is $state; must be present or absent"
@ -106,7 +111,13 @@ Function Choco-Upgrade
[Parameter(Mandatory=$false, Position=3)] [Parameter(Mandatory=$false, Position=3)]
[string]$source, [string]$source,
[Parameter(Mandatory=$false, Position=4)] [Parameter(Mandatory=$false, Position=4)]
[bool]$force [bool]$force,
[Parameter(Mandatory=$false, Position=5)]
[string]$installargs,
[Parameter(Mandatory=$false, Position=6)]
[string]$packageparams,
[Parameter(Mandatory=$false, Position=7)]
[bool]$ignoredependencies
) )
if (-not (Choco-IsInstalled $package)) if (-not (Choco-IsInstalled $package))
@ -131,6 +142,21 @@ Function Choco-Upgrade
$cmd += " -force" $cmd += " -force"
} }
if ($installargs)
{
$cmd += " -installargs '$installargs'"
}
if ($packageparams)
{
$cmd += " -params '$packageparams'"
}
if ($ignoredependencies)
{
$cmd += " -ignoredependencies"
}
$results = invoke-expression $cmd $results = invoke-expression $cmd
if ($LastExitCode -ne 0) if ($LastExitCode -ne 0)
@ -163,14 +189,22 @@ Function Choco-Install
[Parameter(Mandatory=$false, Position=4)] [Parameter(Mandatory=$false, Position=4)]
[bool]$force, [bool]$force,
[Parameter(Mandatory=$false, Position=5)] [Parameter(Mandatory=$false, Position=5)]
[bool]$upgrade [bool]$upgrade,
[Parameter(Mandatory=$false, Position=6)]
[string]$installargs,
[Parameter(Mandatory=$false, Position=7)]
[string]$packageparams,
[Parameter(Mandatory=$false, Position=8)]
[bool]$ignoredependencies
) )
if (Choco-IsInstalled $package) if (Choco-IsInstalled $package)
{ {
if ($upgrade) if ($upgrade)
{ {
Choco-Upgrade -package $package -version $version -source $source -force $force Choco-Upgrade -package $package -version $version -source $source -force $force `
-installargs $installargs -packageparams $packageparams `
-ignoredependencies $ignoredependencies
} }
return return
@ -193,6 +227,21 @@ Function Choco-Install
$cmd += " -force" $cmd += " -force"
} }
if ($installargs)
{
$cmd += " -installargs '$installargs'"
}
if ($packageparams)
{
$cmd += " -params '$packageparams'"
}
if ($ignoredependencies)
{
$cmd += " -ignoredependencies"
}
$results = invoke-expression $cmd $results = invoke-expression $cmd
if ($LastExitCode -ne 0) if ($LastExitCode -ne 0)
@ -253,7 +302,8 @@ Try
if ($state -eq "present") if ($state -eq "present")
{ {
Choco-Install -package $package -version $version -source $source ` Choco-Install -package $package -version $version -source $source `
-force $force -upgrade $upgrade -force $force -upgrade $upgrade -installargs $installargs `
-packageparams $packageparams -ignoredependencies $ignoredependencies
} }
else else
{ {

View file

@ -75,6 +75,24 @@ options:
require: false require: false
default: null default: null
aliases: [] aliases: []
install_args:
description:
- Arguments to pass to the native installer
require: false
default: null
aliases: []
params:
description:
- Parameters to pass to the package
require: false
default: null
aliases: []
ignore_dependencies:
description:
- Ignore dependencies, only install/upgrade the package itself
require: false
default: false
aliases: []
author: "Trond Hindenes (@trondhindenes), Peter Mounce (@petemounce), Pepe Barbe (@elventear), Adam Keech (@smadam813)" author: "Trond Hindenes (@trondhindenes), Peter Mounce (@petemounce), Pepe Barbe (@elventear), Adam Keech (@smadam813)"
''' '''