summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmdline/apt-get.cc41
1 files changed, 29 insertions, 12 deletions
diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc
index 23a918f8d..215a431f6 100644
--- a/cmdline/apt-get.cc
+++ b/cmdline/apt-get.cc
@@ -1,6 +1,6 @@
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: apt-get.cc,v 1.13 1998/11/14 07:20:30 jgg Exp $
+// $Id: apt-get.cc,v 1.14 1998/11/14 08:11:55 jgg Exp $
/* ######################################################################
apt-get - Cover for dpkg
@@ -624,15 +624,19 @@ bool DoInstall(CommandLine &CmdL)
// See if we are removing the package
bool Remove = DefRemove;
- if (S[Length - 1] == '-')
+ if (Cache->FindPkg(S).end() == true)
{
- Remove = true;
- S[--Length] = 0;
- }
- if (S[Length - 1] == '+')
- {
- Remove = false;
- S[--Length] = 0;
+ // Handle an optional end tag indicating what to do
+ if (S[Length - 1] == '-')
+ {
+ Remove = true;
+ S[--Length] = 0;
+ }
+ if (S[Length - 1] == '+')
+ {
+ Remove = false;
+ S[--Length] = 0;
+ }
}
// Locate the package
@@ -641,6 +645,14 @@ bool DoInstall(CommandLine &CmdL)
if (Pkg.end() == true)
return _error->Error("Couldn't find package %s",S);
+ // Handle the no-upgrade case
+ if (_config->FindB("APT::Get::no-upgrade",false) == true &&
+ Pkg->CurrentVer != 0)
+ {
+ c1out << "Skipping " << Pkg.Name() << ", it is already installed and no-upgrade is set." << endl;
+ continue;
+ }
+
// Check if there is something new to install
pkgDepCache::StateCache &State = (*Cache)[Pkg];
if (State.CandidateVer == 0)
@@ -743,8 +755,12 @@ bool DoInstall(CommandLine &CmdL)
}
// See if we need to prompt
- if (Cache->InstCount() != ExpectedInst || Cache->DelCount() != 0)
- return InstallPackages(Cache,false,true);
+ if (Cache->InstCount() == ExpectedInst && Cache->DelCount() == 0)
+ {
+ cout << "Boink" << endl;
+ return InstallPackages(Cache,false,false);
+ }
+
return InstallPackages(Cache,false);
}
/*}}}*/
@@ -925,8 +941,9 @@ int main(int argc,const char *argv[])
{'y',"assume-yes","APT::Get::Assume-Yes",0},
{'f',"fix-broken","APT::Get::Fix-Broken",0},
{'u',"show-upgraded","APT::Get::Show-Upgraded",0},
- {'m',"ignore-missing","APT::Get::Fix-Broken",0},
+ {'m',"ignore-missing","APT::Get::Fix-Broken",0},
{0,"ignore-hold","APT::Ingore-Hold",0},
+ {0,"no-upgrade","APT::Get::no-upgrade",0},
{'c',"config-file",0,CommandLine::ConfigFile},
{'o',"option",0,CommandLine::ArbItem},
{0,0,0,0}};