Documentation
¶
Index ¶
Constants ¶
View Source
const DefaultPublicKey = `` /* 9390-byte string literal not displayed */
DefaultPublicKey is the public key used to sign builds.
View Source
const Host = "https://protonmail.com/download"
Variables ¶
View Source
var ( ErrDownloadVerify = errors.New("failed to download or verify the update") ErrInstall = errors.New("failed to install the update") )
View Source
var DefaultUpdateChannel = StableChannel //nolint:gochecknoglobals
DefaultUpdateChannel is the default update channel to subscribe to. It is set to the stable channel by default, unless overridden at build time.
View Source
var ErrManualUpdateRequired = errors.New("manual update is required")
View Source
var ErrOperationOngoing = errors.New("the operation is already ongoing")
Functions ¶
This section is empty.
Types ¶
type InstallerDefault ¶
type InstallerDefault struct {
// contains filtered or unexported fields
}
func NewInstaller ¶
func NewInstaller(versioner *versioner.Versioner) *InstallerDefault
func (*InstallerDefault) InstallUpdate ¶
type UpdateChannel ¶
type UpdateChannel string
UpdateChannel represents an update channel users can be subscribed to.
const ( // StableChannel is the channel all users are subscribed to by default. StableChannel UpdateChannel = "stable" // EarlyChannel is the channel users subscribe to when they enable "Early Access". EarlyChannel UpdateChannel = "early" )
type Updater ¶
type Updater struct {
// contains filtered or unexported fields
}
func (*Updater) CanInstall ¶
func (u *Updater) CanInstall(version VersionInfo) bool
func (*Updater) Check ¶
func (u *Updater) Check() (VersionInfo, error)
func (*Updater) InstallUpdate ¶
func (u *Updater) InstallUpdate(update VersionInfo) error
func (*Updater) IsDowngrade ¶
func (u *Updater) IsDowngrade(version VersionInfo) bool
func (*Updater) IsUpdateApplicable ¶
func (u *Updater) IsUpdateApplicable(version VersionInfo) bool
type VersionInfo ¶
type VersionInfo struct {
// Version is the semantic version of the release.
Version *semver.Version
// MinAuto is the earliest version that is able to autoupdate to this version.
// Apps older than this version must run the manual installer and cannot autoupdate.
MinAuto *semver.Version
// Package is the location of the update package.
Package string
// Installers are the locations of installer files (for manual installation).
Installers []string
// LandingPage is the address of the app landing page on protonmail.com.
LandingPage string
// ReleaseNotesPage is the address of the page containing the release notes.
ReleaseNotesPage string
// RolloutProportion indicates the proportion (0,1] of users that should update to this version.
RolloutProportion float64
}
VersionInfo is information about one version of the app.
type VersionMap ¶
type VersionMap map[string]VersionInfo
VersionMap represents the structure of the version.json file. It looks like this:
{
"stable": {
"Version": "2.3.4",
"Package": "https://protonmail.com/.../bridge_2.3.4_linux.tgz",
"Installers": [
"https://protonmail.com/.../something.deb",
"https://protonmail.com/.../something.rpm",
"https://protonmail.com/.../PKGBUILD"
],
"LandingPage": "https://protonmail.com/bridge",
"ReleaseNotesPage": "https://protonmail.com/.../release_notes.html",
"RolloutProportion": 0.5
},
"early": {
"Version": "2.4.0",
"Package": "https://protonmail.com/.../bridge_2.4.0_linux.tgz",
"Installers": [
"https://protonmail.com/.../something.deb",
"https://protonmail.com/.../something.rpm",
"https://protonmail.com/.../PKGBUILD"
],
"LandingPage": "https://protonmail.com/bridge",
"ReleaseNotesPage": "https://protonmail.com/.../release_notes.html",
"RolloutProportion": 0.5
},
"...": {
...
}
}.
Click to show internal directories.
Click to hide internal directories.