From: Kristian Høgsberg Date: Thu, 5 Jun 2008 00:53:17 +0000 (-0400) Subject: Start implementing erase - still need better depsolver. X-Git-Tag: 0.1~144 X-Git-Url: http://project.juiblex.co.uk/git/?a=commitdiff_plain;h=4fc6059f62d85455ffbfbffff7d90237b836bea0;p=razor.git Start implementing erase - still need better depsolver. --- diff --git a/razor.c b/razor.c index 6b8dfc5..f77f53f 100644 --- 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", diff --git a/rpm-razor.c b/rpm-razor.c index e16f794..fe1a394 100644 --- a/rpm-razor.c +++ b/rpm-razor.c @@ -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