Do the same for rpm -i and rpm -U.
authorKristian Høgsberg <krh@redhat.com>
Mon, 16 Jun 2008 03:15:59 +0000 (23:15 -0400)
committerKristian Høgsberg <krh@redhat.com>
Mon, 16 Jun 2008 03:15:59 +0000 (23:15 -0400)
rpm-razor.c

index 4727a5f..cb9edda 100644 (file)
@@ -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);