]> git.saurik.com Git - apt.git/blob - apt-private/private-upgrade.cc
re-add "Calculating upgrade..." message
[apt.git] / apt-private / private-upgrade.cc
1 // Includes /*{{{*/
2 #include <apt-pkg/algorithms.h>
3 #include <iostream>
4 #include "private-install.h"
5 #include "private-cachefile.h"
6 #include "private-upgrade.h"
7 #include "private-output.h"
8 /*}}}*/
9
10 // this is actually performing the various upgrade operations
11 static bool UpgradeHelper(CommandLine &CmdL, int UpgradeFlags)
12 {
13 CacheFile Cache;
14 if (Cache.OpenForInstall() == false || Cache.CheckDeps() == false)
15 return false;
16
17 c0out << _("Calculating upgrade... ") << std::flush;
18 if (APT::Upgrade::Upgrade(Cache, UpgradeFlags) == false)
19 {
20 c0out << _("Failed") << std::endl;
21 ShowBroken(c1out,Cache,false);
22 return _error->Error(_("Internal error, Upgrade broke stuff"));
23 }
24 c0out << _("Done") << std::endl;
25
26 // parse additional cmdline pkg manipulation switches
27 if(!DoCacheManipulationFromCommandLine(CmdL, Cache))
28 return false;
29
30 return InstallPackages(Cache,true);
31 }
32
33 // DoDistUpgrade - Automatic smart upgrader /*{{{*/
34 // ---------------------------------------------------------------------
35 /* Intelligent upgrader that will install and remove packages at will */
36 bool DoDistUpgrade(CommandLine &CmdL)
37 {
38 return UpgradeHelper(CmdL, 0);
39 }
40 /*}}}*/
41 // DoUpgradeNoNewPackages - Upgrade all packages /*{{{*/
42 // ---------------------------------------------------------------------
43 /* Upgrade all packages without installing new packages or erasing old
44 packages */
45 bool DoUpgradeNoNewPackages(CommandLine &CmdL)
46 {
47 // Do the upgrade
48 return UpgradeHelper(CmdL,
49 APT::Upgrade::FORBID_REMOVE_PACKAGES|
50 APT::Upgrade::FORBID_NEW_INSTALL_PACKAGES);
51 }
52 /*}}}*/
53 // DoSafeUpgrade - Upgrade all packages with install but not remove /*{{{*/
54 bool DoUpgradeWithAllowNewPackages(CommandLine &CmdL)
55 {
56 return UpgradeHelper(CmdL, APT::Upgrade::FORBID_REMOVE_PACKAGES);
57 }
58 /*}}}*/