From 614b267207d0caf51c33d5c3e7036195aa0624c4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Kristian=20H=C3=B8gsberg?= Date: Sun, 15 Jun 2008 23:15:59 -0400 Subject: [PATCH] Do the same for rpm -i and rpm -U. --- rpm-razor.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 47 insertions(+), 7 deletions(-) diff --git a/rpm-razor.c b/rpm-razor.c index 4727a5f..cb9edda 100644 --- a/rpm-razor.c +++ b/rpm-razor.c @@ -546,11 +546,9 @@ command_erase(int argc, const char *argv[]) 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 @@ command_erase(int argc, const char *argv[]) } 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 @@ command_install(int argc, const char *argv[]) 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 @@ command_install(int argc, const char *argv[]) } 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 @@ command_update(int argc, const char *argv[]) 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); -- 1.7.1