app_installed.ps1
|
function inst_gcm ( [parameter(Mandatory = $true)][ValidateNotNullOrEmpty()][string] $name ) { return [bool](gcm $name -ea 0) } function inst_scoop ( [parameter(Mandatory = $true)][ValidateNotNullOrEmpty()][string] $name ) { if (-not (inst_gcm scoop)) { return $false } return ((scoop export | ConvertFrom-Json).apps | where-object {$_.name -eq "$name"} | measure).count -gt 0 } function inst_reg ( [parameter(Mandatory = $true)][ValidateNotNullOrEmpty()][string] $name ) { $apps = Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*" $apps += Get-ItemProperty "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*" return ($apps | Where-Object {$_.displayname -match "$name"} | measure).count -gt 0 } function inst_app ( [parameter(Mandatory = $true)][ValidateNotNullOrEmpty()][string] $name ) { # note: inst_scoop matches name exactly (case-insensitive) # sys_app/inst_reg matches on "real app name -match (contains) $name" # gcm passes $name directly to powershell `get-command $name` return (inst_reg $name) -or (inst_scoop $name) -or (inst_gcm $name) } |