updater

package
v0.107.55 Latest Latest
Warning

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

Go to latest
Published: Dec 11, 2024 License: GPL-3.0 Imports: 26 Imported by: 0

Documentation

Overview

Package updater provides an updater for AdGuardHome.

Index

Constants

View Source
const MaxPackageFileSize = 32 * 1024 * 1024

MaxPackageFileSize is a maximum package file length in bytes. The largest package whose size is limited by this constant currently has the size of approximately 9 MiB.

Variables

This section is empty.

Functions

func DefaultVersionURL added in v0.107.55

func DefaultVersionURL() *url.URL

DefaultVersionURL returns the default URL for the version announcement.

Types

type Config

type Config struct {
	Client *http.Client

	// VersionCheckURL is URL to the latest version announcement.  It must not
	// be nil, see [DefaultVersionURL].
	VersionCheckURL *url.URL

	Version string
	Channel string
	GOARCH  string
	GOOS    string
	GOARM   string
	GOMIPS  string

	// ConfName is the name of the current configuration file.  Typically,
	// "AdGuardHome.yaml".
	ConfName string

	// WorkDir is the working directory that is used for temporary files.
	WorkDir string

	// ExecPath is path to the executable file.
	ExecPath string
}

Config is the AdGuard Home updater configuration.

type Updater

type Updater struct {
	// contains filtered or unexported fields
}

Updater is the AdGuard Home updater.

func NewUpdater

func NewUpdater(conf *Config) *Updater

NewUpdater creates a new Updater. conf must not be nil.

func (*Updater) NewVersion

func (u *Updater) NewVersion() (nv string)

NewVersion returns the available new version.

func (*Updater) Update

func (u *Updater) Update(firstRun bool) (err error)

Update performs the auto-update. It returns an error if the update failed. If firstRun is true, it assumes the configuration file doesn't exist.

func (*Updater) VersionInfo

func (u *Updater) VersionInfo(forceRecheck bool) (vi VersionInfo, err error)

VersionInfo downloads the latest version information. If forceRecheck is false and there are cached results, those results are returned.

type VersionInfo

type VersionInfo struct {
	NewVersion      string `json:"new_version,omitempty"`
	Announcement    string `json:"announcement,omitempty"`
	AnnouncementURL string `json:"announcement_url,omitempty"`
	// TODO(a.garipov): See if the frontend actually still cares about
	// nullability.
	CanAutoUpdate aghalg.NullBool `json:"can_autoupdate,omitempty"`
}

VersionInfo contains information about a new version.

Jump to

Keyboard shortcuts

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