static void walk_repo_obj(ucl_object_t *obj, const char *file) { ucl_object_t *cur; ucl_object_iter_t it = NULL; struct pkg_repo *r; const char *key; while ((cur = ucl_iterate_object(obj, &it, true))) { key = ucl_object_key(cur); pkg_debug(1, "PkgConfig: parsing key '%s'", key); r = pkg_repo_find_ident(key); if (r != NULL) pkg_debug(1, "PkgConfig: overwriting repository %s", key); if (cur->type == UCL_OBJECT) add_repo(cur, r, key); else pkg_emit_error("Ignoring bad configuration entry in %s: %s", file, ucl_object_emit(cur, UCL_EMIT_YAML)); } }
const char * pkgdb_get_reponame(struct pkgdb *db, const char *repo) { const char *reponame = NULL; struct pkg_repo *r; assert(db->type == PKGDB_REMOTE); if (repo != NULL) { if ((r = pkg_repo_find_ident(repo)) == NULL) { pkg_emit_error("repository '%s' does not exist", repo); return (NULL); } reponame = pkg_repo_name(r); if (!pkgdb_is_attached(db->sqlite, reponame)) { pkg_emit_error("repository '%s' does not exist", repo); return (NULL); } } return (reponame); }