remove --clean-deps added
authorJán Kupec <jkupec@suse.cz>
Thu, 6 May 2010 14:47:03 +0000 (16:47 +0200)
committerJán Kupec <jkupec@suse.cz>
Thu, 6 May 2010 14:47:03 +0000 (16:47 +0200)
src/Zypper.cc
src/solve-commit.cc

index 4c227e1..c5df528 100644 (file)
@@ -988,6 +988,8 @@ void Zypper::processCommandOptions()
       {"debug-solver", no_argument,     0, 0},
       {"no-force-resolution", no_argument, 0, 'R'},
       {"force-resolution", no_argument, 0,  0 },
+      {"clean-deps", no_argument,       0, 'u'},
+      {"no-clean-deps", no_argument,    0, 'U'},
       {"dry-run",    no_argument,       0, 'D'},
       // rug uses -N shorthand
       {"dry-run",    no_argument,       0, 'N'},
@@ -1015,6 +1017,8 @@ void Zypper::processCommandOptions()
       "                            let it ask.\n"
       "    --force-resolution      Force the solver to find a solution (even\n"
       "                            an aggressive one).\n"
+      "-u, --clean-deps            Automatically remove unneeded dependencies.\n"
+      "-U, --no-clean-deps         No automatic removal of unneeded dependencies.\n"
       "-D, --dry-run               Test the removal, do not actually remove.\n"
     ), "package, patch, pattern, product", "package");
     break;
index e964815..5a8553d 100755 (executable)
@@ -261,6 +261,18 @@ static void set_force_resolution(Zypper & zypper)
   God->resolver()->setForceResolve(force_resolution);
 }
 
+static void set_clean_deps(Zypper & zypper)
+{
+  if (zypper.command() == ZypperCommand::REMOVE)
+  {
+    if (zypper.cOpts().find("clean-deps") != zypper.cOpts().end())
+      God->resolver()->setCleandepsOnRemove(true);
+    else if (zypper.cOpts().find("no-clean-deps") != zypper.cOpts().end())
+      God->resolver()->setCleandepsOnRemove(false);
+  }
+  DBG << "clean deps on remove: " << God->resolver()->cleandepsOnRemove() << endl;
+}
+
 static void set_no_recommends(Zypper & zypper)
 {
   bool no_recommends = !zypper.config().solver_installRecommends;
@@ -294,6 +306,7 @@ static void set_ignore_recommends_of_installed(Zypper & zypper)
 static void set_solver_flags(Zypper & zypper)
 {
   set_force_resolution(zypper);
+  set_clean_deps(zypper);
   set_no_recommends(zypper);
   set_ignore_recommends_of_installed(zypper);
 }