Move GroupIsInstalled to separate GroupQuerier optional interface

Co-authored-by: taigrr <8261498+taigrr@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-02-28 06:54:28 +00:00
parent dec1516387
commit 22dda8684d
4 changed files with 8 additions and 0 deletions

View File

@@ -15,6 +15,7 @@ var (
_ snack.RepoManager = (*DNF)(nil)
_ snack.KeyManager = (*DNF)(nil)
_ snack.Grouper = (*DNF)(nil)
_ snack.GroupQuerier = (*DNF)(nil)
_ snack.NameNormalizer = (*DNF)(nil)
)

View File

@@ -468,5 +468,6 @@ var (
_ snack.RepoManager = (*DNF)(nil)
_ snack.KeyManager = (*DNF)(nil)
_ snack.Grouper = (*DNF)(nil)
_ snack.GroupQuerier = (*DNF)(nil)
_ snack.NameNormalizer = (*DNF)(nil)
)

View File

@@ -12,6 +12,7 @@ var (
_ snack.Cleaner = (*Pacman)(nil)
_ snack.FileOwner = (*Pacman)(nil)
_ snack.Grouper = (*Pacman)(nil)
_ snack.GroupQuerier = (*Pacman)(nil)
)
// NOTE: snack.Holder is not implemented for pacman. While pacman supports

View File

@@ -186,7 +186,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)
}