25 lines
781 B
Go
25 lines
781 B
Go
package pkg
|
|
|
|
import (
|
|
"git.xdrm.io/go/nix-amer/internal/exec"
|
|
)
|
|
|
|
// DefaultManager if not empty is the default package-manager to use when missing
|
|
var DefaultManager = ""
|
|
|
|
// PackageManager is the common interface for all package-manager drivers (e.g. `dpkg` for debian-based, `pacman` for arch)
|
|
type PackageManager interface {
|
|
// SetExecContext sets the execution context, default is os/exec
|
|
SetExecutor(exec.Executor)
|
|
// Name of executable (to check if installed and for debug)
|
|
Name() string
|
|
// Fetch updates the package cache/databse
|
|
Fetch() error
|
|
// Upgrade already installed packages and whatever can be upgraded with warranty (e.g. kernel)
|
|
Upgrade() error
|
|
// Install a given package
|
|
Install(string) error
|
|
// Remove a package given package
|
|
Remove(string) error
|
|
}
|