pkgmanager

package
v0.0.0-...-7457a68 Latest Latest
Warning

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

Go to latest
Published: Oct 28, 2022 License: GPL-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ConfigureManagers

func ConfigureManagers(mmc MultiManagerConfig) error

Types

type ApplyFunc

type ApplyFunc func(context.Context, *Package) error

type BrewPackageManager

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

func (*BrewPackageManager) BinaryExists

func (b *BrewPackageManager) BinaryExists() bool

func (*BrewPackageManager) Cmd

func (b *BrewPackageManager) Cmd() string

func (*BrewPackageManager) Delete

func (b *BrewPackageManager) Delete(ctx context.Context, pkg *Package) error

func (*BrewPackageManager) Exists

func (b *BrewPackageManager) Exists(ctx context.Context, pkg *Package) (bool, error)

func (*BrewPackageManager) HowToInstall

func (b *BrewPackageManager) HowToInstall() string

func (*BrewPackageManager) Install

func (b *BrewPackageManager) Install(ctx context.Context, pkg *Package) error

func (*BrewPackageManager) Name

func (b *BrewPackageManager) Name() ManagerName

func (*BrewPackageManager) Path

func (b *BrewPackageManager) Path() string

func (*BrewPackageManager) Update

func (b *BrewPackageManager) Update(ctx context.Context, pkg *Package) error

type Config

type Config struct {
	Name    ManagerName `yaml:"name"    json:"name"`
	Path    string      `yaml:"path"    json:"path"`
	Default bool        `yaml:"default" json:"default"`

	// Prefix is a specific macos field
	Prefix string `yaml:"prefix" json:"prefix"`
}

func (*Config) Validate

func (c *Config) Validate() error

type Defaults

type Defaults ManagerInfo

type ExistsFunc

type ExistsFunc func(context.Context, *Package) (bool, error)

type Manager

type Manager interface {
	ManagerInfo

	Install(ctx context.Context, pkg *Package) error
	Exists(ctx context.Context, pkg *Package) (bool, error)
	Update(ctx context.Context, pkg *Package) error
	Delete(ctx context.Context, pkg *Package) error
}

func Default

func Default() (Manager, error)

func NewBrewPackageManager

func NewBrewPackageManager(cfg *Config) (Manager, error)

func ProvideManager

func ProvideManager(name ManagerName) (Manager, error)

type ManagerInfo

type ManagerInfo interface {
	Name() ManagerName
	Path() string
	BinaryExists() bool
	HowToInstall() string
	Cmd() string
}

type ManagerName

type ManagerName string
const TypeBrew ManagerName = "brew"

type ManagerProvider

type ManagerProvider interface {
	Provide(name ManagerName) (Manager, error)
	Default() (Manager, error)
}

type MultiManagerConfig

type MultiManagerConfig []*Config

func (MultiManagerConfig) Initialize

func (mmc MultiManagerConfig) Initialize() error

func (MultiManagerConfig) Validate

func (mmc MultiManagerConfig) Validate() error

type Package

type Package struct {
	module.BaseDependable `yaml:",inline"`

	Name      module.ID   `yaml:"name"    json:"name"`
	Applier   pkgApplier  `yaml:"applier" json:"applier"`
	Source    string      `yaml:"source"  json:"source"`
	Manager   ManagerName `yaml:"manager" json:"manager"`
	Optional  bool        `yaml:"optional" json:"optional"`
	Mandatory bool        `yaml:"mandatory" json:"mandatory"`
	// contains filtered or unexported fields
}

func (*Package) Apply

func (p *Package) Apply(ctx context.Context) (bool, string, error)

func (*Package) GetID

func (p *Package) GetID() module.ID

func (*Package) IsMandatory

func (p *Package) IsMandatory() bool

func (*Package) IsOptional

func (p *Package) IsOptional() bool

type Packages

type Packages []*Package

Jump to

Keyboard shortcuts

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