# HG changeset patch # User Kristian H?gsberg # Date 1213586159 14400 # Node ID edd5fe0a00bab1e7a76fe6367917a06d90f357f6 # Parent 7a1b0282ae3caa92d9e73b65fb5442fc0978f39e Do the same for rpm -i and rpm -U. diff -r 7a1b0282ae3c -r edd5fe0a00ba rpm-razor.c --- a/rpm-razor.c Sun Jun 15 22:33:15 2008 -0400 +++ b/rpm-razor.c Sun Jun 15 23:15:59 2008 -0400 @@ -546,11 +546,9 @@ razor_transaction_remove_package(trans, package); razor_package_iterator_destroy(pi); - if (!option_nodeps) { - if (razor_transaction_describe(trans) > 0) { - printf("unsatisfied dependencies.\n"); - exit(1); - } + if (!option_nodeps && razor_transaction_describe(trans) > 0) { + printf("unsatisfied dependencies.\n"); + exit(1); } if (option_test) @@ -568,6 +566,15 @@ } static void +install_package(const char *name, + const char *old_version, const char *new_version, + const char *arch, void *data) +{ + if (new_version) + printf("install %s-%s.%s\n", name, new_version, arch); +} + +static void command_install(int argc, const char *argv[]) { struct razor_set *set, *upstream, *next; @@ -592,8 +599,19 @@ razor_transaction_install_package(trans, package); razor_package_iterator_destroy(pi); - razor_transaction_describe(trans); + if (!option_nodeps && razor_transaction_describe(trans) > 0) { + printf("unsatisfied dependencies.\n"); + exit(1); + } + + if (option_test) + exit(0); + next = razor_transaction_finish(trans); + + if (!option_justdb) + razor_set_diff(set, next, install_package, NULL); + razor_set_destroy(set); razor_set_destroy(upstream); @@ -601,6 +619,17 @@ } static void +update_package(const char *name, + const char *old_version, const char *new_version, + const char *arch, void *data) +{ + if (old_version) + printf("remove %s-%s.%s\n", name, old_version, arch); + if (new_version) + printf("install %s-%s.%s\n", name, new_version, arch); +} + +static void command_update(int argc, const char *argv[]) { struct razor_set *set, *upstream, *next; @@ -625,8 +654,19 @@ razor_transaction_update_package(trans, package); razor_package_iterator_destroy(pi); - razor_transaction_describe(trans); + if (!option_nodeps && razor_transaction_describe(trans) > 0) { + printf("unsatisfied dependencies.\n"); + exit(1); + } + + if (option_test) + exit(0); + next = razor_transaction_finish(trans); + + if (!option_justdb) + razor_set_diff(set, next, update_package, NULL); + razor_set_destroy(set); razor_set_destroy(upstream);