return *p1 - *p2;
}
-RAZOR_EXPORT struct razor_package *
-razor_set_get_package(struct razor_set *set, const char *package)
-{
- struct razor_package_iterator *pi;
- struct razor_package *p;
- const char *name;
-
- assert (set != NULL);
- assert (package != NULL);
-
- pi = razor_package_iterator_create(set);
- while (razor_package_iterator_next(pi, &p, RAZOR_DETAIL_NAME, &name, NULL)) {
- if (strcmp(package, name) == 0)
- break;
- }
- razor_package_iterator_destroy(pi);
-
- return p;
-}
-
static const char *
razor_package_get_details_type(struct razor_set *set,
struct razor_package *package,
}
RAZOR_EXPORT void
-razor_set_list_package_files(struct razor_set *set, const char *name)
+razor_set_list_package_files(struct razor_set *set,
+ struct razor_package *package)
{
- struct razor_package *package;
struct list *r;
uint32_t end;
char buffer[512];
assert (set != NULL);
- assert (name != NULL);
-
- package = razor_set_get_package(set, name);
- /* TODO: we should return the error to the caller */
- if (!package)
- return;
+ assert (package != NULL);
r = list_first(&package->files, &set->file_pool);
end = set->files.size / sizeof (struct razor_entry);
return 0;
}
-static int
-list_properties(const char *package_name, uint32_t type)
+static void
+list_package_properties(struct razor_set *set,
+ struct razor_package *package, uint32_t type)
{
- struct razor_set *set;
- struct razor_property *property;
- struct razor_package *package;
struct razor_property_iterator *pi;
+ struct razor_property *property;
const char *name, *version;
uint32_t flags;
- set = razor_set_open(repo_filename);
- if (package_name) {
- package = razor_set_get_package(set, package_name);
- if (!package) {
- fprintf(stderr, "no package named \"%s\"\n", package_name);
- return 1;
- }
- } else
- package = NULL;
-
pi = razor_property_iterator_create(set, package);
while (razor_property_iterator_next(pi, &property,
&name, &flags, &version)) {
printf("\n");
}
razor_property_iterator_destroy(pi);
+}
+static int
+list_properties(int argc, const char *argv[], uint32_t type)
+{
+ struct razor_set *set;
+ struct razor_package *package;
+ struct razor_package_iterator *pi;
+ const char *name, *version, *arch;
+
+ set = razor_set_open(repo_filename);
+ pi = create_iterator_from_argv(set, argc, argv);
+ while (razor_package_iterator_next(pi, &package,
+ &name, &version, &arch))
+ list_package_properties(set, package, type);
+ razor_package_iterator_destroy(pi);
razor_set_destroy(set);
return 0;
static int
command_list_requires(int argc, const char *argv[])
{
- return list_properties(argv[0], RAZOR_PROPERTY_REQUIRES);
+ return list_properties(argc, argv, RAZOR_PROPERTY_REQUIRES);
}
static int
command_list_provides(int argc, const char *argv[])
{
- return list_properties(argv[0], RAZOR_PROPERTY_PROVIDES);
+ return list_properties(argc, argv, RAZOR_PROPERTY_PROVIDES);
}
static int
command_list_obsoletes(int argc, const char *argv[])
{
- return list_properties(argv[0], RAZOR_PROPERTY_OBSOLETES);
+ return list_properties(argc, argv, RAZOR_PROPERTY_OBSOLETES);
}
static int
command_list_conflicts(int argc, const char *argv[])
{
- return list_properties(argv[0], RAZOR_PROPERTY_CONFLICTS);
+ return list_properties(argc, argv, RAZOR_PROPERTY_CONFLICTS);
}
static int
command_list_package_files(int argc, const char *argv[])
{
struct razor_set *set;
+ struct razor_package_iterator *pi;
+ struct razor_package *package;
+ const char *name, *version, *arch;
set = razor_set_open(repo_filename);
if (set == NULL)
if (razor_set_open_files(set, "system-files.repo"))
return 1;
- razor_set_list_package_files(set, argv[0]);
+ pi = create_iterator_from_argv(set, argc, argv);
+ while (razor_package_iterator_next(pi, &package,
+ &name, &version, &arch))
+ razor_set_list_package_files(set, package);
+ razor_package_iterator_destroy(pi);
+
razor_set_destroy(set);
return 0;
ctx->n_remove_pkgs = 0;
}
+static struct razor_package *
+get_package(struct razor_set *set, const char *package)
+{
+ struct razor_package_iterator *pi;
+ struct razor_package *p;
+ const char *name, *version, *arch;
+
+ pi = razor_package_iterator_create(set);
+ while (razor_package_iterator_next(pi, &p, &name, &version, &arch)) {
+ if (strcmp(package, name) == 0)
+ break;
+ }
+ razor_package_iterator_destroy(pi);
+
+ return p;
+}
+
static void
end_transaction(struct test_context *ctx)
{
ctx->trans = razor_transaction_create(ctx->system_set, ctx->repo_set);
for (i = 0; i < ctx->n_install_pkgs; i++) {
- pkg = razor_set_get_package(ctx->repo_set,
- ctx->install_pkgs[i]);
+ pkg = get_package(ctx->repo_set, ctx->install_pkgs[i]);
razor_transaction_install_package(ctx->trans, pkg);
}
for (i = 0; i < ctx->n_remove_pkgs; i++) {
- pkg = razor_set_get_package(ctx->system_set,
- ctx->remove_pkgs[i]);
+ pkg = get_package(ctx->system_set, ctx->remove_pkgs[i]);
if (!pkg)
- pkg = razor_set_get_package(ctx->repo_set,
- ctx->remove_pkgs[i]);
+ pkg = get_package(ctx->repo_set, ctx->remove_pkgs[i]);
razor_transaction_remove_package(ctx->trans, pkg);
}