mirror of
https://github.com/gogrlx/snack.git
synced 2026-04-02 05:08:42 -07:00
refactor(snack): merge GroupIsInstalled into Grouper interface
GroupQuerier was an unnecessary indirection — GroupIsInstalled is a group operation and belongs on Grouper. No v1 stability guarantee, so breaking the interface is fine.
This commit is contained in:
@@ -15,7 +15,6 @@ var (
|
||||
_ snack.RepoManager = (*DNF)(nil)
|
||||
_ snack.KeyManager = (*DNF)(nil)
|
||||
_ snack.Grouper = (*DNF)(nil)
|
||||
_ snack.GroupQuerier = (*DNF)(nil)
|
||||
_ snack.NameNormalizer = (*DNF)(nil)
|
||||
_ snack.DryRunner = (*DNF)(nil)
|
||||
)
|
||||
|
||||
@@ -468,6 +468,5 @@ var (
|
||||
_ snack.RepoManager = (*DNF)(nil)
|
||||
_ snack.KeyManager = (*DNF)(nil)
|
||||
_ snack.Grouper = (*DNF)(nil)
|
||||
_ snack.GroupQuerier = (*DNF)(nil)
|
||||
_ snack.NameNormalizer = (*DNF)(nil)
|
||||
)
|
||||
|
||||
@@ -12,7 +12,6 @@ var (
|
||||
_ snack.Cleaner = (*Pacman)(nil)
|
||||
_ snack.FileOwner = (*Pacman)(nil)
|
||||
_ snack.Grouper = (*Pacman)(nil)
|
||||
_ snack.GroupQuerier = (*Pacman)(nil)
|
||||
_ snack.DryRunner = (*Pacman)(nil)
|
||||
)
|
||||
|
||||
|
||||
6
snack.go
6
snack.go
@@ -189,16 +189,12 @@ type Grouper interface {
|
||||
|
||||
// GroupInstall installs all packages in a group.
|
||||
GroupInstall(ctx context.Context, group string, opts ...Option) error
|
||||
}
|
||||
|
||||
// GroupQuerier provides an efficient check for whether a package group is
|
||||
// fully installed. This is an optional extension of [Grouper].
|
||||
// Supported by: pacman, dnf/yum.
|
||||
type GroupQuerier interface {
|
||||
// GroupIsInstalled reports whether all packages in the group are installed.
|
||||
GroupIsInstalled(ctx context.Context, group string) (bool, error)
|
||||
}
|
||||
|
||||
|
||||
// NormalizeName provides package name normalization.
|
||||
// Supported by: apt (strips :arch suffixes), rpm.
|
||||
type NameNormalizer interface {
|
||||
|
||||
Reference in New Issue
Block a user