From 22dda8684dcb14e31e151ab5516903b51bbe85d7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sat, 28 Feb 2026 06:54:28 +0000 Subject: [PATCH] Move GroupIsInstalled to separate GroupQuerier optional interface Co-authored-by: taigrr <8261498+taigrr@users.noreply.github.com> --- dnf/capabilities.go | 1 + dnf/parse_test.go | 1 + pacman/capabilities.go | 1 + snack.go | 5 +++++ 4 files changed, 8 insertions(+) diff --git a/dnf/capabilities.go b/dnf/capabilities.go index 1279004..1b8dc38 100644 --- a/dnf/capabilities.go +++ b/dnf/capabilities.go @@ -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) ) diff --git a/dnf/parse_test.go b/dnf/parse_test.go index 8e9dfa6..4cc9f76 100644 --- a/dnf/parse_test.go +++ b/dnf/parse_test.go @@ -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) ) diff --git a/pacman/capabilities.go b/pacman/capabilities.go index 213c0bd..d5400ad 100644 --- a/pacman/capabilities.go +++ b/pacman/capabilities.go @@ -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 diff --git a/snack.go b/snack.go index 10ba124..fea9ec2 100644 --- a/snack.go +++ b/snack.go @@ -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) }