1.1 --- a/rpm-razor.c Wed Jun 04 20:53:17 2008 -0400
1.2 +++ b/rpm-razor.c Wed Jun 04 21:06:09 2008 -0400
1.3 @@ -77,7 +77,7 @@
1.4 { OPTION_BOOL, "nofiles", 0, NULL, "don't verify files in package", NULL },
1.5 { OPTION_BOOL, "nodeps", 0, NULL, "don't verify package dependencies", NULL },
1.6 { OPTION_BOOL, "noscript", 0, NULL, "don't execute verify script(s)", NULL, },
1.7 - { OPTION_BOOL, "all", 'a', NULL, "query/verify all packages", NULL },
1.8 + { OPTION_BOOL, "all", 'a', NULL, "query/verify all packages", &option_al },
1.9 { OPTION_BOOL, "file", 'f', NULL, "query/verify package(s) owning file", NULL },
1.10 { OPTION_BOOL, "group", 'g', NULL, "query/verify package(s) in group", NULL },
1.11 { OPTION_BOOL, "package", 'p', NULL, "query/verify a package file", NULL },
1.12 @@ -460,7 +460,7 @@
1.13 static void
1.14 command_erase(int argc, const char *argv[])
1.15 {
1.16 - struct razor_set *set;
1.17 + struct razor_set *set, *next;
1.18 struct razor_transaction *trans;
1.19 struct razor_package_query *query;
1.20 struct razor_package_iterator *pi;
1.21 @@ -478,30 +478,52 @@
1.22
1.23 query = razor_package_query_create(set);
1.24 add_command_line_packages(set, query, argc, argv);
1.25 +
1.26 pi = razor_package_query_finish(query);
1.27 -
1.28 while (razor_package_iterator_next(pi, &package,
1.29 &name, &version, &arch))
1.30 razor_transaction_remove_package(trans, package);
1.31 -
1.32 razor_package_iterator_destroy(pi);
1.33
1.34 - set = razor_transaction_finish(trans);
1.35 -
1.36 - razor_set_list_unsatisfied(set);
1.37 + next = razor_transaction_finish(trans);
1.38 + razor_set_destroy(set);
1.39
1.40 - razor_set_destroy(set);
1.41 + razor_set_list_unsatisfied(next);
1.42 + razor_set_destroy(next);
1.43 }
1.44
1.45 static void
1.46 command_install(int argc, const char *argv[])
1.47 {
1.48 + struct razor_set *set, *upstream, *next;
1.49 + struct razor_transaction *trans;
1.50 + struct razor_package_iterator *pi;
1.51 + struct razor_package *package;
1.52 + const char *name, *version, *arch;
1.53 +
1.54 if (argc == 0) {
1.55 printf("no packages given for install\n");
1.56 exit(1);
1.57 }
1.58
1.59 - printf("command install - not implemented\n");
1.60 + set = razor_set_open(repo_filename);
1.61 + upstream = create_set_from_command_line(argc, argv);
1.62 +
1.63 + trans = razor_transaction_create(set, upstream);
1.64 +
1.65 + pi = razor_package_iterator_create(upstream);
1.66 + while (razor_package_iterator_next(pi, &package,
1.67 + &name, &version, &arch))
1.68 + razor_transaction_install_package(trans, package);
1.69 + razor_package_iterator_destroy(pi);
1.70 +
1.71 + next = razor_transaction_finish(trans);
1.72 + razor_set_destroy(set);
1.73 + razor_set_destroy(upstream);
1.74 +
1.75 + razor_set_list_unsatisfied(next);
1.76 +
1.77 + razor_set_destroy(next);
1.78 }
1.79
1.80 static void