Documentation
¶
Overview ¶
Package packagemanager provides a generic interface for package managers.
Index ¶
- Variables
- func RegisterApk(repository *Registry)
- func RegisterApt(repository *Registry)
- func RegisterChocolatey(repository *Registry)
- func RegisterDnf(repository *Registry)
- func RegisterHomebrew(repository *Registry)
- func RegisterMacports(repository *Registry)
- func RegisterPacman(repository *Registry)
- func RegisterScoop(repository *Registry)
- func RegisterWindowsMultiManager(repository *Registry)
- func RegisterWinget(repository *Registry)
- func RegisterYum(repository *Registry)
- func RegisterZypper(repository *Registry)
- type Factory
- type ManagerProvider
- type NullPackageManager
- type PackageManager
- func NewApk(c cmd.ContextRunner) PackageManager
- func NewApt(c cmd.ContextRunner) PackageManager
- func NewChocolatey(c cmd.ContextRunner) PackageManager
- func NewDnf(c cmd.ContextRunner) PackageManager
- func NewHomebrew(c cmd.ContextRunner) PackageManager
- func NewMacports(c cmd.ContextRunner) PackageManager
- func NewPacman(c cmd.ContextRunner) PackageManager
- func NewScoop(c cmd.ContextRunner) PackageManager
- func NewWindowsMultiManager(c cmd.ContextRunner) PackageManager
- func NewWinget(c cmd.ContextRunner) PackageManager
- func NewYum(c cmd.ContextRunner) PackageManager
- func NewZypper(c cmd.ContextRunner) PackageManager
- type Provider
- type Registry
- type WindowsMultiManager
Constants ¶
This section is empty.
Variables ¶
var ( // DefaultRegistry is the default repository of package managers. DefaultRegistry = sync.OnceValue(func() *Registry { provider := NewRegistry() RegisterApk(provider) RegisterApt(provider) RegisterYum(provider) RegisterDnf(provider) RegisterPacman(provider) RegisterZypper(provider) RegisterWindowsMultiManager(provider) RegisterHomebrew(provider) RegisterMacports(provider) return provider }) // ErrNoPackageManager is returned when no supported package manager is found. ErrNoPackageManager = errors.New("no supported package manager found") )
var ErrNoWindowsPackageManager = errors.New("no windows package manager found")
ErrNoWindowsPackageManager is returned when no windows package manager is found.
Functions ¶
func RegisterApk ¶
func RegisterApk(repository *Registry)
RegisterApk registers the apk package manager to a repository.
func RegisterApt ¶
func RegisterApt(repository *Registry)
RegisterApt registers the apt package manager to a repository.
func RegisterChocolatey ¶
func RegisterChocolatey(repository *Registry)
RegisterChocolatey registers the chocolatey package manager to a repository.
func RegisterDnf ¶
func RegisterDnf(repository *Registry)
RegisterDnf registers the dnf package manager to a repository.
func RegisterHomebrew ¶
func RegisterHomebrew(repository *Registry)
RegisterHomebrew registers the homebrew package manager to a repository.
func RegisterMacports ¶
func RegisterMacports(repository *Registry)
RegisterMacports registers the macports package manager to a repository.
func RegisterPacman ¶
func RegisterPacman(repository *Registry)
RegisterPacman registers the pacman package manager to a repository.
func RegisterScoop ¶
func RegisterScoop(repository *Registry)
RegisterScoop registers the scoop package manager to a repository.
func RegisterWindowsMultiManager ¶
func RegisterWindowsMultiManager(repository *Registry)
RegisterWindowsMultiManager registers the windows multi package manager to a repository.
func RegisterWinget ¶
func RegisterWinget(repository *Registry)
RegisterWinget registers the winget (preinstalled on win10+) package manager to a repository.
func RegisterYum ¶
func RegisterYum(repository *Registry)
RegisterYum registers the yum package manager to a repository. It is skipped when dnf is available, as dnf is preferred.
func RegisterZypper ¶
func RegisterZypper(repository *Registry)
RegisterZypper registers the zypper package manager to a repository.
Types ¶
type Factory ¶
type Factory = plumbing.Factory[cmd.ContextRunner, PackageManager]
Factory is an alias for plumbing.Factory specialized for PackageManager.
type ManagerProvider ¶
type ManagerProvider func(cmd.ContextRunner) (PackageManager, error)
ManagerProvider is a function that returns a PackageManager given a runner.
type NullPackageManager ¶
type NullPackageManager struct {
Err error
}
NullPackageManager is a package manager that always returns an error on every operation.
func (*NullPackageManager) Install ¶
func (n *NullPackageManager) Install(ctx context.Context, packageNames ...string) error
Install returns an error on every call.
type PackageManager ¶
type PackageManager interface {
Install(ctx context.Context, packageNames ...string) error
Remove(ctx context.Context, packageNames ...string) error
Update(ctx context.Context) error
}
PackageManager is a generic interface for package managers.
func NewApk ¶
func NewApk(c cmd.ContextRunner) PackageManager
NewApk creates a new apk package manager.
func NewApt ¶
func NewApt(c cmd.ContextRunner) PackageManager
NewApt creates a new apt package manager.
func NewChocolatey ¶
func NewChocolatey(c cmd.ContextRunner) PackageManager
NewChocolatey creates a new chocolatey package manager.
func NewDnf ¶
func NewDnf(c cmd.ContextRunner) PackageManager
NewDnf creates a new dnf package manager.
func NewHomebrew ¶
func NewHomebrew(c cmd.ContextRunner) PackageManager
NewHomebrew creates a new homebrew package manager.
func NewMacports ¶
func NewMacports(c cmd.ContextRunner) PackageManager
NewMacports creates a new macports package manager.
func NewPacman ¶
func NewPacman(c cmd.ContextRunner) PackageManager
NewPacman creates a new pacman package manager.
func NewScoop ¶
func NewScoop(c cmd.ContextRunner) PackageManager
NewScoop creates a new scoop package manager.
func NewWindowsMultiManager ¶
func NewWindowsMultiManager(c cmd.ContextRunner) PackageManager
NewWindowsMultiManager creates a new windows multi package manager.
func NewWinget ¶
func NewWinget(c cmd.ContextRunner) PackageManager
NewWinget creates a new winget package manager.
func NewYum ¶
func NewYum(c cmd.ContextRunner) PackageManager
NewYum creates a new yum package manager.
func NewZypper ¶
func NewZypper(c cmd.ContextRunner) PackageManager
NewZypper creates a new zypper package manager.
type Provider ¶
type Provider struct {
// contains filtered or unexported fields
}
Provider provides a unified interface to interact with different package managers. It ensures that a suitable package manager is lazily initialized and made available for package operations. It supports operations like installation, removal, and updating of packages via the PackageManager interface.
func NewPackageManagerProvider ¶
func NewPackageManagerProvider(get ManagerProvider, runner cmd.ContextRunner) *Provider
NewPackageManagerProvider creates a new instance of Provider with the provided ManagerProvider function.
func (*Provider) PackageManager ¶
func (p *Provider) PackageManager() (PackageManager, error)
PackageManager returns a PackageManager or an error if the package manager could not be initialized.
type Registry ¶
type Registry = plumbing.Provider[cmd.ContextRunner, PackageManager]
Registry is an alias for plumbing.Provider specialized for PackageManager.
func NewRegistry ¶
func NewRegistry() *Registry
NewRegistry creates a new instance of the specialized Registry.
type WindowsMultiManager ¶
type WindowsMultiManager struct {
cmd.ContextRunner
// contains filtered or unexported fields
}
WindowsMultiManager combines all found windows package managers and tries to manage packaes through all of them. This is done because there is no single one package manager to rule them all for windows.
func (*WindowsMultiManager) Install ¶
func (w *WindowsMultiManager) Install(ctx context.Context, packageNames ...string) error
Install the given packages.
func (*WindowsMultiManager) Remove ¶
func (w *WindowsMultiManager) Remove(ctx context.Context, packageNames ...string) error
Remove the given packages.
func (*WindowsMultiManager) String ¶
func (w *WindowsMultiManager) String() string
String returns the package manager name.