evergreen icon indicating copy to clipboard operation
evergreen copied to clipboard

[New app]: Proton VPN

Open aaronparker opened this issue 2 years ago • 1 comments

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/

aaronparker avatar Dec 09 '23 08:12 aaronparker

Is this a new version? What makes proton vpn new?

Taxit0m avatar Jan 27 '24 04:01 Taxit0m

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
}

AScott-WWF avatar Mar 05 '24 10:03 AScott-WWF