1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

Revert "improved msi"

This reverts commit 7eac2121a5.
This commit is contained in:
Trond Hindenes 2014-07-06 22:36:01 +02:00
parent 7eac2121a5
commit f0dcc36e6d
2 changed files with 9 additions and 74 deletions

View file

@ -45,15 +45,7 @@ options:
description: description:
- Path to a file created by installing the MSI to prevent from - Path to a file created by installing the MSI to prevent from
attempting to reinstall the package on every run attempting to reinstall the package on every run
msiname: author: Matt Martz
description:
- alternative way to check for the existence of an msi (can be used for both states (absent and present).
The msiname can be found by looking at name property of the the win32_product object for the item.
msiversionstring
description:
- used in conjunction with msiname - you cannot specify msiversionstring only.
The msiversionstring can be found by looking at version property of the the win32_product object for the item.
author: Matt Martz / Trond Hindenes
''' '''
EXAMPLES = ''' EXAMPLES = '''
@ -62,7 +54,5 @@ EXAMPLES = '''
# Uninstall an MSI file # Uninstall an MSI file
- win_msi: path=C:\\\\7z920-x64.msi state=absent - win_msi: path=C:\\\\7z920-x64.msi state=absent
- win_msi: path=C:\\\\7z920-x64.msi msiname="myproduct" msiversionstring="3.2.0"
''' '''

View file

@ -24,88 +24,33 @@ $params = Parse-Args $args;
$result = New-Object psobject; $result = New-Object psobject;
Set-Attr $result "changed" $false; Set-Attr $result "changed" $false;
If (!($params.path)) If (-not $params.path.GetType)
{ {
Fail-Json $result "missing required arguments: path" Fail-Json $result "missing required arguments: path"
} }
if (!(test-path $params.path)) $extra_args = ""
{ If ($params.extra_args.GetType)
Fail-Json $result "couldn't find a file at $($params.path)"
}
If ($params.extra_args)
{ {
$extra_args = $params.extra_args; $extra_args = $params.extra_args;
} }
Else
{
$extra_args = ""
}
if ($params.MsiVersionString) If ($params.creates.GetType -and $params.state.GetType -and $params.state -ne "absent")
{ {
$MsiVersionString = $params.MsiVersionString If (Test-File $creates)
}
if ($params.MsiName)
{
$MsiName = $params.MsiName
}
if (($MsiVersionString) -and (!($MsiName)))
{
#If msiversionstring is specified, we need msiname as well
Fail-Json $result "missing required arguments: MsiName"
}
If (($params.creates) -and ($params.state -ne "absent"))
{
If (Test-Path ($params.creates))
{ {
Exit-Json $result; Exit-Json $result;
} }
} }
if ($MsiName) $logfile = [IO.Path]::GetTempFileName();
if ($params.state.GetType -and $params.state -eq "absent")
{ {
$AlreadyInstalledMsi = Get-WmiObject -Query "Select * from win32_product" | where {$_.Name -eq $MsiName}
}
ElseIf (($MsiName) -and ($MsiVersionString))
{
$AlreadyInstalledMsi = Get-WmiObject -Query "Select * from win32_product" | where {($_.Name -eq $MsiName) -and ($_.version -eq $MsiVersionString)}
}
Else
{
if ($params.state -eq "absent")
{
#existing msi check not specify, assume msi does exist
$AlreadyInstalledMsi = $true
}
if ($params.state -eq "present")
{
#existing msi check not specify, assume msi does exist
$AlreadyInstalledMsi = $false
}
}
if (($AlreadyInstalledMsi) -and ($params.state -eq "absent"))
{
#Already installed, perform uninstall
msiexec.exe /x $params.path /qb /l $logfile $extra_args; msiexec.exe /x $params.path /qb /l $logfile $extra_args;
} }
Elseif((!$AlreadyInstalledMsi) -and ($params.state -eq "present"))
{
#Not already installed, perform the install
$logfile = [IO.Path]::GetTempFileName();
msiexec.exe /i $params.path /qb /l $logfile $extra_args;
}
Else Else
{ {
#Do nothing msiexec.exe /i $params.path /qb /l $logfile $extra_args;
Exit-Json $result;
} }
Set-Attr $result "changed" $true; Set-Attr $result "changed" $true;