evergreen
evergreen copied to clipboard
[New app]: Proton VPN
What is the new application?
Browse privately with a secure VPN. Protect yourself online with a fast and reliable VPN
Downloads: https://protonvpn.com/download/windows-releases.json
Vendor site
https://protonvpn.com/
Does the vendor require a sign-in to download the app?
No
Does the application include an updater?
Yes
Have you reviewed the list of supported applications?
- [X] Supported apps at: https://stealthpuppy.com/evergreen/apps/
Is this a new version? What makes proton vpn new?
I have just created the Manifest and App scripts to do this - I hope these help @aaronparker ?: Manifest: ProtonVPN.json:
{
"Name": "ProtonVPN",
"Source": "https://protonvpn.com/",
"Get": {
"Uri": "https://api.github.com/repos/ProtonVPN/win-app/releases/latest",
"MatchVersion": "(\\d+(\\.\\d+){1,4}).*",
"MatchFileTypes": "\\.exe$"
},
"Install": {
"Setup": "ProtonVPN*.exe",
"Physical": {
"Arguments": "/exenoui /exelog C:\Windows\Temp\ProtonVPN.log /qn /exenoupdates",
"PostInstall": [TASKKILL /F /IM ProtonVPN.exe]
},
"Virtual": {
"Arguments": "/exenoui /exelog C:\Windows\Temp\ProtonVPN.log /qn /exenoupdates",
"PostInstall": [TASKKILL /F /IM ProtonVPN.exe]
}
}
}
Apps script: Get-ProtonVPN.ps1:
Function Get-ProtonVPN {
<#
.SYNOPSIS
Returns the latest ProtonVPN version number and download.
.NOTES
Author: Adrian Scott
#>
[OutputType([System.Management.Automation.PSObject])]
[CmdletBinding(SupportsShouldProcess = $False)]
param (
[Parameter(Mandatory = $False, Position = 0)]
[ValidateNotNull()]
[System.Management.Automation.PSObject]
$res = (Get-FunctionResource -AppName ("$($MyInvocation.MyCommand)".Split("-"))[1])
)
# Pass the repo releases API URL and return a formatted object
$params = @{
Uri = $res.Get.Uri
MatchVersion = $res.Get.MatchVersion
Filter = $res.Get.MatchFileTypes
}
$object = Get-GitHubRepoRelease @params
Write-Output -InputObject $object
}