v0.3.11 Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Jan 12, 2016 License: Apache-2.0, MIT Imports: 10 Imported by: 0




View Source
const (
	INITIATIVE_NEVER  Initiative = "never"
	INITIATIVE_AUTO              = "auto"
	INITIATIVE_MANUAL            = "manual"


View Source
var NoUpdateAvailable error = fmt.Errorf("No update available")


This section is empty.


type Initiative

type Initiative string

type Params

type Params struct {
	// protocol version
	Version int `json:"version"`
	// identifier of the application to update
	AppId string `json:"app_id"`
	// version of the application updating itself
	AppVersion string `json:"app_version"`
	// operating system of target platform
	OS string `json:"-"`
	// hardware architecture of target platform
	Arch string `json:"-"`
	// application-level user identifier
	UserId string `json:"user_id"`
	// checksum of the binary to replace (used for returning diff patches)
	Checksum string `json:"checksum"`
	// release channel (empty string means 'stable')
	Channel string `json:"-"`
	// tags for custom update channels
	Tags map[string]string `json:"tags"`

func (*Params) CheckAndApplyUpdate

func (p *Params) CheckAndApplyUpdate(url string, up *update.Update) (result *Result, err error, errRecover error)

func (*Params) CheckForUpdate

func (p *Params) CheckForUpdate(url string, up *update.Update) (*Result, error)

CheckForUpdate makes an HTTP post to a URL with the JSON serialized representation of Params. It returns the deserialized result object returned by the remote endpoint or an error. If you do not set OS/Arch, CheckForUpdate will populate them for you. Similarly, if Version is 0, it will be set to 1. Lastly, if Checksum is the empty string, it will be automatically be computed for the running program's executable file.

type Result

type Result struct {

	// should the update be applied automatically/manually
	Initiative Initiative `json:"initiative"`
	// url where to download the updated application
	Url string `json:"url"`
	// a URL to a patch to apply
	PatchUrl string `json:"patch_url"`
	// the patch format (only bsdiff supported at the moment)
	PatchType update.PatchType `json:"patch_type"`
	// version of the new application
	Version string `json:"version"`
	// expected checksum of the new application
	Checksum string `json:"checksum"`
	// signature for verifying update authenticity
	Signature string `json:"signature"`
	// contains filtered or unexported fields

func (*Result) Update

func (r *Result) Update() (err error, errRecover error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL