# HG changeset patch # User Kristian H?gsberg # Date 1212627197 14400 # Node ID 1fcb5c23034aed069e3d82b15e594840723c01a4 # Parent 1c2997b34929b1f6aca71405203537af3d54d9f4 Start implementing erase - still need better depsolver. diff -r 1c2997b34929 -r 1fcb5c23034a razor.c --- a/razor.c Wed Jun 04 20:16:50 2008 -0400 +++ b/razor.c Wed Jun 04 20:53:17 2008 -0400 @@ -1205,7 +1205,7 @@ 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 -r 1c2997b34929 -r 1fcb5c23034a rpm-razor.c --- a/rpm-razor.c Wed Jun 04 20:16:50 2008 -0400 +++ b/rpm-razor.c Wed Jun 04 20:53:17 2008 -0400 @@ -460,12 +460,37 @@ 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