1.1 --- a/src/main.c Tue Jul 08 21:59:36 2008 -0400
1.2 +++ b/src/main.c Tue Jul 08 22:02:58 2008 -0400
1.3 @@ -684,19 +684,26 @@
1.4 static int
1.5 download_packages(struct razor_set *system, struct razor_set *next)
1.6 {
1.7 - struct razor_package_iterator *pi;
1.8 + struct razor_install_iterator *ii;
1.9 struct razor_package *package;
1.10 + struct razor_set *set;
1.11 + enum razor_install_action action;
1.12 const char *name, *version, *arch;
1.13 char file[PATH_MAX], url[256];
1.14 - int errors;
1.15 -
1.16 - pi = razor_set_create_install_iterator(system, next);
1.17 - errors = 0;
1.18 - while (razor_package_iterator_next(pi, &package,
1.19 - RAZOR_DETAIL_NAME, &name,
1.20 - RAZOR_DETAIL_VERSION, &version,
1.21 - RAZOR_DETAIL_ARCH, &arch,
1.22 - RAZOR_DETAIL_LAST)) {
1.23 + int errors = 0, count;
1.24 +
1.25 + ii = razor_set_create_install_iterator(system, next);
1.26 + while (razor_install_iterator_next(ii, &set, &package,
1.27 + &action, &count)) {
1.28 + if (action == RAZOR_INSTALL_ACTION_REMOVE)
1.29 + continue;
1.30 +
1.31 + razor_package_get_details(set, package,
1.32 + RAZOR_DETAIL_NAME, &name,
1.33 + RAZOR_DETAIL_VERSION, &version,
1.34 + RAZOR_DETAIL_ARCH, &arch,
1.35 + RAZOR_DETAIL_LAST);
1.36 +
1.37 snprintf(url, sizeof url,
1.38 "%s/Packages/%s",
1.39 yum_url, rpm_filename(name, version, arch));
1.40 @@ -705,7 +712,7 @@
1.41 if (download_if_missing(url, file) < 0)
1.42 errors++;
1.43 }
1.44 - razor_package_iterator_destroy(pi);
1.45 + razor_install_iterator_destroy(ii);
1.46
1.47 if (errors > 0) {
1.48 fprintf(stderr, "failed to download %d packages\n", errors);
1.49 @@ -718,18 +725,27 @@
1.50 static int
1.51 install_packages(struct razor_set *system, struct razor_set *next)
1.52 {
1.53 - struct razor_package_iterator *pi;
1.54 + struct razor_install_iterator *ii;
1.55 struct razor_package *package;
1.56 + struct razor_set *set;
1.57 + enum razor_install_action action;
1.58 struct razor_rpm *rpm;
1.59 const char *name, *version, *arch;
1.60 char file[PATH_MAX];
1.61 + int count;
1.62
1.63 - pi = razor_set_create_install_iterator(system, next);
1.64 - while (razor_package_iterator_next(pi, &package,
1.65 - RAZOR_DETAIL_NAME, &name,
1.66 - RAZOR_DETAIL_VERSION, &version,
1.67 - RAZOR_DETAIL_ARCH, &arch,
1.68 - RAZOR_DETAIL_LAST)) {
1.69 + ii = razor_set_create_install_iterator(system, next);
1.70 + while (razor_install_iterator_next(ii, &set, &package,
1.71 + &action, &count)) {
1.72 + if (action == RAZOR_INSTALL_ACTION_REMOVE)
1.73 + continue;
1.74 +
1.75 + razor_package_get_details(set, package,
1.76 + RAZOR_DETAIL_NAME, &name,
1.77 + RAZOR_DETAIL_VERSION, &version,
1.78 + RAZOR_DETAIL_ARCH, &arch,
1.79 + RAZOR_DETAIL_LAST);
1.80 +
1.81 printf("install %s-%s\n", name, version);
1.82
1.83 snprintf(file, sizeof file,
1.84 @@ -746,7 +762,7 @@
1.85 }
1.86 razor_rpm_close(rpm);
1.87 }
1.88 - razor_package_iterator_destroy(pi);
1.89 + razor_install_iterator_destroy(ii);
1.90
1.91 return 0;
1.92 }