gofish

package
v0.21.0 Latest Latest
Warning

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

Go to latest
Published: Oct 10, 2022 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ErrCouldNotLink struct {
	Err error
}

ErrCouldNotLink is returned when the 'link' operation does not succeed

func (ErrCouldNotLink) Error

func (e ErrCouldNotLink) Error() string
type ErrCouldNotUnlink struct {
	Err error
}

ErrCouldNotUnlink is returned when the 'unlink' operation does not succeed

func (ErrCouldNotUnlink) Error

func (e ErrCouldNotUnlink) Error() string

type Food

type Food struct {
	// The canonical name of the software.
	Name string
	// The repository where this food resides.
	Rig string
	// A (short) description of the software.
	Description string
	// The license identifier for the software.
	License string
	// The homepage URL for the software.
	Homepage string
	// Caveats inform the user about any Draft-specific caveats regarding this fish food.
	Caveats string
	// The version of the software.
	Version string
	// The list of binary distributions available for this fish food.
	Packages []*Package
	// The script to run before installation
	PreInstallScript string
	// The script to run after a successful installation
	PostInstallScript string
}

Food provides metadata to install a piece of software.

func (*Food) DownloadTo

func (f *Food) DownloadTo(pkg *Package, filePath string) error

DownloadTo downloads a particular package to filePath, returning any errors if encountered.

func (*Food) GetPackage

func (f *Food) GetPackage(os, arch string) *Package

GetPackage does a lookup for a package supporting the given os/arch. If none were found, this returns nil.

func (*Food) Install

func (f *Food) Install() error

Install attempts to install the package, returning errors if it fails.

func (f *Food) Link(pkg *Package) error

Link creates links to any linked resources owned by the package.

func (*Food) Linked

func (f *Food) Linked() bool

Linked checks to see if a particular package owned by this fish food is linked to /usr/local/bin. This is just a check if the binaries symlinked in /usr/local/bin link back to the barrel.

func (*Food) Lint

func (f *Food) Lint() (errs []error)

Lint analyses a given fish food for potential errors, returning a list of errors.

func (*Food) Uninstall

func (f *Food) Uninstall() error

Uninstall attempts to uninstall the package, returning errors if it fails.

func (f *Food) Unlink(pkg *Package) error

Unlink removes any linked resources owned by the package.

type Package

type Package struct {
	// the running program's operating system target. One of darwin, linux, windows, and so on.
	OS string
	// the running program's architecture target. One of 386, amd64, arm, s390x, and so on.
	Arch      string
	Resources []*Resource
	// The URL used to download the binary distribution for this version of the fish food. The file must be a gzipped tarball (.tar.gz) or a zipfile (.zip) for unpacking.
	URL string
	// Additional URLs for this version of the fish food.
	Mirrors []string
	// To verify the cached download's integrity and security, we verify the SHA-256 hash matches what we've declared in the fish food.
	SHA256 string
}

Package provides metadata to install a piece of software on a given operating system and architecture.

type Resource

type Resource struct {
	// Path is the path relative from the root of the unpacked archive to the resource. The resource is symlinked into the InstallPath and, if Executable is set, made executable (chmod +x).
	Path string
	// InstallPath is the destination path relative from /usr/local. The resource is symlinked from Path to the InstallPath and, if Executable is set, made executable (chmod +x).
	InstallPath string
	// Executable defines whether or not this resource should be made executable (chmod +x). This only applies for MacOS/Linux and can be ignored on Windows.
	Executable bool
}

Resource is a installable thingy that should be moved into /usr/local from the install path, such as an executable, manpages, libraries, etc.

Jump to

Keyboard shortcuts

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