Documentation
¶
Index ¶
- func Register(reg *execution.ActionRegistry)
- type Install
- type Installed
- type NotInstalled
- type Provider
- func (p *Provider) CompensateInstall(state any) error
- func (p *Provider) CompensateRemove(state any) error
- func (p *Provider) CompensateUpgrade(_ any) error
- func (p *Provider) Install(packages []string, manager string, cask bool) (string, map[string]any, error)
- func (p *Provider) Installed(name string) (bool, error)
- func (p *Provider) NotInstalled(name string) (bool, error)
- func (p *Provider) Remove(packages []string, manager string, cask bool) (string, map[string]any, error)
- func (p *Provider) Update(manager string) (string, error)
- func (p *Provider) Upgrade(packages []string, manager string, cask bool) (string, map[string]any, error)
- func (p *Provider) VersionGTE(name, version string) (bool, error)
- type Remove
- type Update
- type Upgrade
- type VersionGTE
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Register ¶
func Register(reg *execution.ActionRegistry)
Register registers all pkg actions with the given registry.
Types ¶
type Install ¶
type Install struct{ Impl *Provider }
Install — Install installs packages using the platform's package manager. Returns compensation state with pre-install status per package.
type Installed ¶
type Installed struct{ Impl *Provider }
Installed — Installed returns true if the named package is installed.
type NotInstalled ¶
type NotInstalled struct{ Impl *Provider }
NotInstalled — NotInstalled returns true if the named package is not installed.
func (*NotInstalled) Name ¶
func (o *NotInstalled) Name() string
type Provider ¶
type Provider struct {
// contains filtered or unexported fields
}
Provider provides platform-independent package management. The package manager is resolved at runtime via host.PackageManager().
Compensable Forward methods return (string, map[string]any, error): a summary of affected packages, the compensation receipt, and an error. The map is opaque to the executor, meaningful only to the corresponding Compensate* Backward method.
func (*Provider) CompensateInstall ¶
CompensateInstall undoes an Install by removing packages that weren't already installed before the action.
func (*Provider) CompensateRemove ¶
CompensateRemove undoes a Remove by reinstalling the removed packages.
func (*Provider) CompensateUpgrade ¶
CompensateUpgrade is a diagnostic no-op. Previous versions are captured in state for manual recovery, but automatic downgrade is not reliable across package managers.
func (*Provider) Install ¶
func (p *Provider) Install(packages []string, manager string, cask bool) (string, map[string]any, error)
Install installs packages using the platform's package manager. Returns compensation state with pre-install status per package.
Parameters:
- packages: List of package names to install
- manager: Package manager override (empty for auto-detect)
- cask: If true, use Homebrew cask for macOS GUI apps
func (*Provider) Installed ¶
Installed returns true if the named package is installed.
Parameters:
- name: Package name to check
func (*Provider) NotInstalled ¶
NotInstalled returns true if the named package is not installed.
Parameters:
- name: Package name to check
func (*Provider) Remove ¶
func (p *Provider) Remove(packages []string, manager string, cask bool) (string, map[string]any, error)
Remove removes packages using the platform's package manager. Returns compensation state for reinstallation.
Parameters:
- packages: List of package names to remove
- manager: Package manager override (empty for auto-detect)
- cask: If true, use Homebrew cask for macOS GUI apps
func (*Provider) Update ¶
Update refreshes the package manager index.
Parameters:
- manager: Package manager override (empty for auto-detect)
func (*Provider) Upgrade ¶
func (p *Provider) Upgrade(packages []string, manager string, cask bool) (string, map[string]any, error)
Upgrade upgrades packages using the platform's package manager. Returns compensation state with pre-upgrade versions per package.
Parameters:
- packages: List of package names to upgrade
- manager: Package manager override (empty for auto-detect)
- cask: If true, use Homebrew cask for macOS GUI apps
type Remove ¶
type Remove struct{ Impl *Provider }
Remove — Remove removes packages using the platform's package manager. Returns compensation state for reinstallation.
type Update ¶
type Update struct{ Impl *Provider }
Update — Update refreshes the package manager index.
type Upgrade ¶
type Upgrade struct{ Impl *Provider }
Upgrade — Upgrade upgrades packages using the platform's package manager. Returns compensation state with pre-upgrade versions per package.
type VersionGTE ¶
type VersionGTE struct{ Impl *Provider }
VersionGTE — VersionGTE returns true if the installed version of name is >= version.
func (*VersionGTE) Name ¶
func (o *VersionGTE) Name() string