pacman: don't error when a group exists but all packages are ignored

Currently when attempting to sync a group where all packages are
ignored, either by ignorepkg, ignoregroup or --needed, pacman
will error with "target not found".

Instead, if a group has no packages check if the group exists
before throwing an error.

Signed-off-by: morganamilo <morganamilo@gmail.com>
This commit is contained in:
morganamilo 2018-10-20 14:58:52 +01:00 committed by Andrew Gregory
parent afb9c0140f
commit 8c9046e604

View file

@ -535,6 +535,20 @@ static int process_pkg(alpm_pkg_t *pkg)
return 0; return 0;
} }
static int group_exists(alpm_list_t *dbs, const char *name)
{
alpm_list_t *i;
for(i = dbs; i; i = i->next) {
alpm_db_t *db = i->data;
if(alpm_db_get_group(db, name)) {
return 1;
}
}
return 0;
}
static int process_group(alpm_list_t *dbs, const char *group, int error) static int process_group(alpm_list_t *dbs, const char *group, int error)
{ {
int ret = 0; int ret = 0;
@ -543,6 +557,10 @@ static int process_group(alpm_list_t *dbs, const char *group, int error)
int count = alpm_list_count(pkgs); int count = alpm_list_count(pkgs);
if(!count) { if(!count) {
if(group_exists(dbs, group)) {
return 0;
}
pm_printf(ALPM_LOG_ERROR, _("target not found: %s\n"), group); pm_printf(ALPM_LOG_ERROR, _("target not found: %s\n"), group);
return 1; return 1;
} }