downloader

package
v0.0.4 Latest Latest
Warning

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

Go to latest
Published: Jul 13, 2022 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsLocal

func IsLocal(s string) bool

Types

type Opt

type Opt func(*options) error

func WithCache

func WithCache() Opt

WithCache enables caching using filepath.Join(os.UserCacheDir(), "lima") as the cache dir.

func WithCacheDir

func WithCacheDir(cacheDir string) Opt

WithCacheDir enables caching using the specified dir. Empty value disables caching.

func WithExpectedDigest

func WithExpectedDigest(expectedDigest digest.Digest) Opt

WithExpectedDigest is used to validate the downloaded file against the expected digest.

The digest is not verified in the following cases: - The digest was not specified. - The file already exists in the local target path.

When the `data` file exists in the cache dir with `digest.<ALGO>` file, the digest is verified by comparing the content of `digest.<ALGO>` with the expected digest string. So, the actual digest of the `data` file is not computed.

type Result

type Result struct {
	Status          Status
	CachePath       string // "/Users/foo/Library/Caches/lima/download/by-url-sha256/<SHA256_OF_URL>/data"
	ValidatedDigest bool
}

func Download

func Download(local, remote string, opts ...Opt) (*Result, error)

Download downloads the remote resource into the local path.

Download caches the remote resource if WithCache or WithCacheDir option is specified. Local files are not cached.

When the local path already exists, Download returns Result with StatusSkipped. (So, the local path cannot be set to /dev/null for "caching only" mode.)

The local path can be an empty string for "caching only" mode.

type Status

type Status = string
const (
	StatusUnknown    Status = ""
	StatusDownloaded Status = "downloaded"
	StatusSkipped    Status = "skipped"
	StatusUsedCache  Status = "used-cache"
)

Jump to

Keyboard shortcuts

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