1.1 --- a/librazor/razor.c Fri Jun 20 21:38:29 2008 -0400
1.2 +++ b/librazor/razor.c Fri Jun 20 22:26:41 2008 -0400
1.3 @@ -463,3 +463,55 @@
1.4 razor_package_iterator_destroy(pi1);
1.5 razor_package_iterator_destroy(pi2);
1.6 }
1.7 +
1.8 +static void
1.9 +add_new_package(enum razor_diff_action action,
1.10 + struct razor_package *package,
1.11 + const char *name,
1.12 + const char *version,
1.13 + const char *arch,
1.14 + void *data)
1.15 +{
1.16 + if (action == RAZOR_DIFF_ACTION_ADD)
1.17 + razor_package_query_add_package(data, package);
1.18 +}
1.19 +
1.20 +struct razor_package_iterator *
1.21 +razor_set_create_remove_iterator(struct razor_set *set,
1.22 + struct razor_set *next)
1.23 +{
1.24 + struct razor_package_query *query;
1.25 + struct razor_package_iterator *pi;
1.26 +
1.27 + query = razor_package_query_create(set);
1.28 + razor_set_diff(next, set, add_new_package, query);
1.29 +
1.30 + pi = razor_package_query_finish(query);
1.31 +
1.32 + /* FIXME: We need to figure out the right install order here,
1.33 + * so the post and pre scripts can run. */
1.34 +
1.35 + /* sort */
1.36 +
1.37 + return pi;
1.38 +}
1.39 +
1.40 +struct razor_package_iterator *
1.41 +razor_set_create_install_iterator(struct razor_set *set,
1.42 + struct razor_set *next)
1.43 +{
1.44 + struct razor_package_query *query;
1.45 + struct razor_package_iterator *pi;
1.46 +
1.47 + query = razor_package_query_create(next);
1.48 + razor_set_diff(set, next, add_new_package, query);
1.49 +
1.50 + pi = razor_package_query_finish(query);
1.51 +
1.52 + /* FIXME: We need to figure out the right install order here,
1.53 + * so the post and pre scripts can run. */
1.54 +
1.55 + /* sort */
1.56 +
1.57 + return pi;
1.58 +}