packages

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Jul 14, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package packages provides package backend operations.

Index

Constants

This section is empty.

Variables

View Source
var AutoBackend = func() (string, error) {
	f, err := detect.Detect()
	if err != nil {
		return "", err
	}
	return f.Backend, nil
}

AutoBackend resolves the backend string from the runtime environment. It is a variable so tests can substitute it.

Functions

This section is empty.

Types

type Apt

type Apt struct {
	Runner Runner
}

Apt is the Debian/Ubuntu backend skeleton.

func NewApt

func NewApt() *Apt

NewApt returns an Apt backend using the real command runner.

func (*Apt) Absent

func (a *Apt) Absent(pkgs []string) error

Absent removes packages.

func (*Apt) IsInstalled

func (a *Apt) IsInstalled(pkg string) (bool, error)

IsInstalled checks if a package is installed via dpkg.

func (*Apt) Present

func (a *Apt) Present(pkgs []string) error

Present installs packages idempotently.

type Backend

type Backend interface {
	// Present installs the given packages if not already present.
	Present(pkgs []string) error
	// Absent removes the given packages.
	Absent(pkgs []string) error
	// IsInstalled reports whether a package is already installed.
	IsInstalled(pkg string) (bool, error)
}

Backend performs package operations.

func For

func For(backend string) Backend

For selects a backend for the given facts. It returns a Paru backend for Arch-family distros, Apt for Debian/Ubuntu, Dnf for Fedora, and resolves from os-release for "auto".

type Dnf

type Dnf struct {
	Runner Runner
}

Dnf is the Fedora/RHEL backend skeleton.

func NewDnf

func NewDnf() *Dnf

NewDnf returns a Dnf backend using the real command runner.

func (*Dnf) Absent

func (d *Dnf) Absent(pkgs []string) error

Absent removes packages.

func (*Dnf) IsInstalled

func (d *Dnf) IsInstalled(pkg string) (bool, error)

IsInstalled checks if a package is installed via rpm.

func (*Dnf) Present

func (d *Dnf) Present(pkgs []string) error

Present installs packages idempotently.

type ExecRunner

type ExecRunner struct{}

ExecRunner is the real command runner.

func (ExecRunner) Run

func (ExecRunner) Run(name string, args ...string) (string, error)

type Paru

type Paru struct {
	Runner Runner
}

Paru is the Arch/CachyOS backend.

func NewParu

func NewParu() *Paru

NewParu returns a Paru backend using the real command runner.

func (*Paru) Absent

func (p *Paru) Absent(pkgs []string) error

Absent removes packages.

func (*Paru) IsInstalled

func (p *Paru) IsInstalled(pkg string) (bool, error)

IsInstalled checks if a package is installed via pacman.

func (*Paru) Present

func (p *Paru) Present(pkgs []string) error

Present installs packages idempotently.

type Runner

type Runner interface {
	Run(name string, args ...string) (string, error)
}

Runner runs a command and returns stdout.

type Step

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

Step is the apply pipeline step for packages.

func NewStep

func NewStep(backend Backend, plan *resolve.Plan) *Step

NewStep creates a package step bound to a plan and backend.

func (*Step) Name

func (s *Step) Name() string

Name returns the step name.

func (*Step) Run

func (s *Step) Run(ctx context.Context) error

Run applies the package backend.

Jump to

Keyboard shortcuts

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