updates win_msi to allow install to wait
- adds additional wait param - updates to use Start-Process to allow -Wait - this will wait for install/uninstall to complete before continue
This commit is contained in:
parent
5f58240d17
commit
1f55b45edd
2 changed files with 36 additions and 3 deletions
|
@ -23,12 +23,18 @@ $params = Parse-Args $args;
|
|||
|
||||
$result = New-Object psobject;
|
||||
Set-Attr $result "changed" $false;
|
||||
$wait = $false
|
||||
|
||||
If (-not $params.path.GetType)
|
||||
{
|
||||
Fail-Json $result "missing required arguments: path"
|
||||
}
|
||||
|
||||
If ($params.wait -eq "true" -Or $params.wait -eq "yes")
|
||||
{
|
||||
$wait = $true
|
||||
}
|
||||
|
||||
$extra_args = ""
|
||||
If ($params.extra_args.GetType)
|
||||
{
|
||||
|
@ -44,13 +50,27 @@ If ($params.creates.GetType -and $params.state.GetType -and $params.state -ne "a
|
|||
}
|
||||
|
||||
$logfile = [IO.Path]::GetTempFileName();
|
||||
if ($params.state.GetType -and $params.state -eq "absent")
|
||||
If ($params.state.GetType -and $params.state -eq "absent")
|
||||
{
|
||||
msiexec.exe /x $params.path /qb /l $logfile $extra_args;
|
||||
If ($wait)
|
||||
{
|
||||
Start-Process -FilePath msiexec.exe -ArgumentList "/x $params.path /qb /l $logfile $extra_args" -Verb Runas -Wait;
|
||||
}
|
||||
Else
|
||||
{
|
||||
msiexec.exe /i $params.path /qb /l $logfile $extra_args;
|
||||
Start-Process -FilePath msiexec.exe -ArgumentList "/x $params.path /qb /l $logfile $extra_args" -Verb Runas;
|
||||
}
|
||||
}
|
||||
Else
|
||||
{
|
||||
If ($wait)
|
||||
{
|
||||
Start-Process -FilePath msiexec.exe -ArgumentList "/i $params.path /qb /l $logfile $extra_args" -Verb Runas -Wait;
|
||||
}
|
||||
Else
|
||||
{
|
||||
Start-Process -FilePath msiexec.exe -ArgumentList "/i $params.path /qb /l $logfile $extra_args" -Verb Runas;
|
||||
}
|
||||
}
|
||||
|
||||
Set-Attr $result "changed" $true;
|
||||
|
|
|
@ -45,6 +45,16 @@ options:
|
|||
description:
|
||||
- Path to a file created by installing the MSI to prevent from
|
||||
attempting to reinstall the package on every run
|
||||
wait:
|
||||
version_added: ""
|
||||
description:
|
||||
- Specify whether to wait for install or uninstall to complete before continuing.
|
||||
choices:
|
||||
- true
|
||||
- yes
|
||||
- false
|
||||
- no
|
||||
default: false
|
||||
author: Matt Martz
|
||||
'''
|
||||
|
||||
|
@ -52,6 +62,9 @@ EXAMPLES = '''
|
|||
# Install an MSI file
|
||||
- win_msi: path=C:\\\\7z920-x64.msi
|
||||
|
||||
# Install an MSI, and wait for it to complete before continuing
|
||||
- win_msi: path=C:\\\\7z920-x64.msi wait=true
|
||||
|
||||
# Uninstall an MSI file
|
||||
- win_msi: path=C:\\\\7z920-x64.msi state=absent
|
||||
'''
|
||||
|
|
Loading…
Reference in a new issue