librazor/razor.c
changeset 256 3603b635d6c9
parent 253 338a577cdfd2
child 259 5b0601d184ed
     1.1 --- a/librazor/razor.c	Fri Jun 20 21:38:29 2008 -0400
     1.2 +++ b/librazor/razor.c	Fri Jun 20 22:27:07 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 +}