# QEMU Guest Agent
# 2016-2021 foo.li systeme + software

$packageName	= 'qemu-guest-agent'
$version        = '102.7.0'
$installerType	= 'msi'
$url		= 'https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-qemu-ga/qemu-ga-win-' + $version + '-0-el8/qemu-ga-x86.msi'
$url64          = 'https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-qemu-ga/qemu-ga-win-' + $version + '-0.el8/qemu-ga-x86_64.msi'
$silentArgs	= '/qb'
$packageSearch	= 'QEMU guest agent*'
$checksum       = '52dd465b996b1f9ec7e83e64a7f2e147a07f886c'
$checksumType	= 'sha1'
$checksum64	= '0d16fcde5d183fba5ca00be47e13c50d00aa5580'
$checksumType64 = $checksumType
$validExitCodes	= @(0,3010)

$compmanu = Get-WmiObject Win32_ComputerSystem | select manufacturer
if ($compmanu.manufacturer -like '*Bochs*') { Write-Host 'QEMU/KVM detected' }
elseif ($compmanu.manufacturer -like '*QEMU*'){ Write-Host 'QEMU/KVM detected' }
else {
  Write-Host 'could not detect QEMU/KVM virtual machine. Stopping deployment'
  throw 'no KVM/QEMU VM detected'
}

try {
  $app = Get-ItemProperty -Path @('HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*',
				  'HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*') `
    -ErrorAction:SilentlyContinue | Where-Object { $_.DisplayName -like $packageSearch }

  if ($app -and ([version]$app.DisplayVersion -ge [version]$version)) {
    Write-Host 'QEMU Guest Agent' $version 'or higher is already installed. Doing nothing.'
  } else {
    Install-ChocolateyPackage $packageName $installerType $silentArgs $url $url64 `
      -checksum $checksum -checksumType $checksumType `
      -checksum64 $checksum64 -checksumType64 $checksumType64 `
      -validExitCodes $validExitCodes
  }
} catch {
  throw $_.Exception
}
