Start implementing erase - still need better depsolver.
authorKristian Høgsberg <krh@redhat.com>
Thu, 5 Jun 2008 00:53:17 +0000 (20:53 -0400)
committerKristian Høgsberg <krh@redhat.com>
Thu, 5 Jun 2008 00:53:17 +0000 (20:53 -0400)
razor.c
rpm-razor.c

diff --git a/razor.c b/razor.c
index 6b8dfc5..f77f53f 100644 (file)
--- a/razor.c
+++ b/razor.c
@@ -1205,7 +1205,7 @@ razor_set_list_unsatisfied(struct razor_set *set)
        for (u = unsatisfied.data; u < end; u++) {
                r = properties + *u;
                if (pool[r->version] == '\0')
-                       printf("%ss not satisfied\n",
+                       printf("%s not satisfied\n",
                               &pool[r->name]);
                else
                        printf("%s-%s not satisfied\n",
index e16f794..fe1a394 100644 (file)
@@ -460,12 +460,37 @@ command_verify(int argc, const char *argv[])
 static void
 command_erase(int argc, const char *argv[])
 {
+       struct razor_set *set;
+       struct razor_transaction *trans;
+       struct razor_package_query *query;
+       struct razor_package_iterator *pi;
+       struct razor_package *package;
+       const char *name, *version, *arch;
+
        if (argc == 0) {
                printf("no packages given for erase\n");
                exit(1);
        }
 
-       printf("command erase - not implemented\n");
+       set = razor_set_open(repo_filename);
+
+       trans = razor_transaction_create(set, NULL);
+
+       query = razor_package_query_create(set);
+       add_command_line_packages(set, query, argc, argv);
+       pi = razor_package_query_finish(query);
+
+       while (razor_package_iterator_next(pi, &package,
+                                          &name, &version, &arch))
+               razor_transaction_remove_package(trans, package);
+
+       razor_package_iterator_destroy(pi);
+
+       set = razor_transaction_finish(trans);
+       
+       razor_set_list_unsatisfied(set);
+
+       razor_set_destroy(set);
 }
 
 static void