]> git.saurik.com Git - apt.git/blobdiff - cmdline/apt-cache.cc
add a --solver option to apt-get
[apt.git] / cmdline / apt-cache.cc
index 6813d297865ac4f4323491e19b46cf5949ede678..01e0d22e07ba124719f739c4833e94a35fb67f40 100644 (file)
@@ -588,7 +588,7 @@ bool ShowDepends(CommandLine &CmdL, bool const RevDepends)
    CacheSetHelperVirtuals helper(false);
    APT::VersionSet verset = APT::VersionSet::FromCommandLine(CacheFile, CmdL.FileList + 1, APT::VersionSet::CANDIDATE, helper);
    if (verset.empty() == true && helper.virtualPkgs.empty() == true)
-      return false;
+      return _error->Error(_("No packages found"));
    std::vector<bool> Shown(Cache->Head().PackageCount);
 
    bool const Recurse = _config->FindB("APT::Cache::RecurseDepends", false);
@@ -1116,58 +1116,6 @@ bool Dotty(CommandLine &CmdL)
    
    printf("}\n");
    return true;
-}
-                                                                       /*}}}*/
-// DoAdd - Perform an adding operation                                 /*{{{*/
-// ---------------------------------------------------------------------
-/* */
-bool DoAdd(CommandLine &CmdL)
-{
-   return _error->Error("Unimplemented");
-#if 0   
-   // Make sure there is at least one argument
-   if (CmdL.FileSize() <= 1)
-      return _error->Error("You must give at least one file name");
-   
-   // Open the cache
-   FileFd CacheF(_config->FindFile("Dir::Cache::pkgcache"),FileFd::WriteAny);
-   if (_error->PendingError() == true)
-      return false;
-   
-   DynamicMMap Map(CacheF,MMap::Public);
-   if (_error->PendingError() == true)
-      return false;
-
-   OpTextProgress Progress(*_config);
-   pkgCacheGenerator Gen(Map,Progress);
-   if (_error->PendingError() == true)
-      return false;
-
-   unsigned long Length = CmdL.FileSize() - 1;
-   for (const char **I = CmdL.FileList + 1; *I != 0; I++)
-   {
-      Progress.OverallProgress(I - CmdL.FileList,Length,1,"Generating cache");
-      Progress.SubProgress(Length);
-
-      // Do the merge
-      FileFd TagF(*I,FileFd::ReadOnly);
-      debListParser Parser(TagF);
-      if (_error->PendingError() == true)
-        return _error->Error("Problem opening %s",*I);
-      
-      if (Gen.SelectFile(*I,"") == false)
-        return _error->Error("Problem with SelectFile");
-        
-      if (Gen.MergeList(Parser) == false)
-        return _error->Error("Problem with MergeList");
-   }
-
-   Progress.Done();
-   GCache = &Gen.GetCache();
-   Stats(CmdL);
-   
-   return true;
-#endif   
 }
                                                                        /*}}}*/
 // DisplayRecord - Displays the complete record for the package                /*{{{*/
@@ -1321,7 +1269,7 @@ bool Search(CommandLine &CmdL)
         continue;
       pkgCache::VerIterator V = Plcy->GetCandidateVer(P);
       if (V.end() == false)
-        DFList[G->ID].Df = V.DescriptionList().FileList();
+        DFList[G->ID].Df = V.TranslatedDescription().FileList();
 
       if (DFList[G->ID].NameMatch == false)
         continue;
@@ -1334,7 +1282,7 @@ bool Search(CommandLine &CmdL)
            continue;
 
         unsigned long id = Prv.OwnerPkg().Group()->ID;
-        DFList[id].Df = V.DescriptionList().FileList();
+        DFList[id].Df = V.TranslatedDescription().FileList();
         DFList[id].NameMatch = true;
       }
    }
@@ -1571,7 +1519,6 @@ bool Policy(CommandLine &CmdL)
       return true;
    }
 
-   string const myArch = _config->Find("APT::Architecture");
    char const * const msgInstalled = _("  Installed: ");
    char const * const msgCandidate = _("  Candidate: ");
    short const InstalledLessCandidate =
@@ -1584,14 +1531,8 @@ bool Policy(CommandLine &CmdL)
    // Print out detailed information for each package
    APT::CacheSetHelper helper(true, GlobalError::NOTICE);
    APT::PackageSet pkgset = APT::PackageSet::FromCommandLine(CacheFile, CmdL.FileList + 1, helper);
-   for (APT::PackageSet::const_iterator I = pkgset.begin(); I != pkgset.end(); ++I)
+   for (APT::PackageSet::const_iterator Pkg = pkgset.begin(); Pkg != pkgset.end(); ++Pkg)
    {
-      pkgCache::PkgIterator Pkg = I.Group().FindPkg("any");
-
-      for (; Pkg.end() != true; Pkg = I.Group().NextPkg(Pkg)) {
-      if (strcmp(Pkg.Arch(),"all") == 0)
-        continue;
-
       cout << Pkg.FullName(true) << ":" << endl;
 
       // Installed version
@@ -1640,7 +1581,6 @@ bool Policy(CommandLine &CmdL)
                   Indx->Describe(true).c_str());
         }
       }
-      }
    }
    
    return true;
@@ -1664,10 +1604,11 @@ bool Madison(CommandLine &CmdL)
       _error->Discard();
 
    APT::CacheSetHelper helper(true, GlobalError::NOTICE);
-   APT::PackageSet pkgset = APT::PackageSet::FromCommandLine(CacheFile, CmdL.FileList + 1, helper);
-   for (APT::PackageSet::const_iterator Pkg = pkgset.begin(); Pkg != pkgset.end(); ++Pkg)
+   for (const char **I = CmdL.FileList + 1; *I != 0; I++)
    {
-      if (Pkg.end() == false)
+      _error->PushToStack();
+      APT::PackageSet pkgset = APT::PackageSet::FromString(CacheFile, *I, helper);
+      for (APT::PackageSet::const_iterator Pkg = pkgset.begin(); Pkg != pkgset.end(); ++Pkg)
       {
          for (pkgCache::VerIterator V = Pkg.VersionList(); V.end() == false; V++)
          {
@@ -1698,16 +1639,21 @@ bool Madison(CommandLine &CmdL)
          }
       }
 
-      
       SrcRecs.Restart();
       pkgSrcRecords::Parser *SrcParser;
-      while ((SrcParser = SrcRecs.Find(Pkg.Name(),false)) != 0)
+      bool foundSomething = false;
+      while ((SrcParser = SrcRecs.Find(*I, false)) != 0)
       {
+         foundSomething = true;
          // Maybe support Release info here too eventually
          cout << setw(10) << SrcParser->Package() << " | "
               << setw(10) << SrcParser->Version() << " | "
               << SrcParser->Index().Describe(true) << endl;
       }
+      if (foundSomething == true)
+        _error->RevertToStack();
+      else
+        _error->MergeWithStack();
    }
 
    return true;
@@ -1737,15 +1683,13 @@ bool ShowHelp(CommandLine &Cmd)
 
    cout << 
     _("Usage: apt-cache [options] command\n"
-      "       apt-cache [options] add file1 [file2 ...]\n"
       "       apt-cache [options] showpkg pkg1 [pkg2 ...]\n"
       "       apt-cache [options] showsrc pkg1 [pkg2 ...]\n"
       "\n"
-      "apt-cache is a low-level tool used to manipulate APT's binary\n"
-      "cache files, and query information from them\n"
+      "apt-cache is a low-level tool used to query information\n"
+      "from APT's binary cache files\n"
       "\n"
       "Commands:\n"
-      "   add - Add a package file to the source cache\n"
       "   gencaches - Build both the package and source cache\n"
       "   showpkg - Show some general information for a single package\n"
       "   showsrc - Show source records\n"
@@ -1775,15 +1719,6 @@ bool ShowHelp(CommandLine &Cmd)
    return true;
 }
                                                                        /*}}}*/
-// CacheInitialize - Initialize things for apt-cache                   /*{{{*/
-// ---------------------------------------------------------------------
-/* */
-void CacheInitialize()
-{
-   _config->Set("quiet",0);
-   _config->Set("help",false);
-}
-                                                                       /*}}}*/
 int main(int argc,const char *argv[])                                  /*{{{*/
 {
    CommandLine::Args Args[] = {
@@ -1814,7 +1749,6 @@ int main(int argc,const char *argv[])                                     /*{{{*/
       {0,"enhances","APT::Cache::ShowEnhances",0},
       {0,0,0,0}};
    CommandLine::Dispatch CmdsA[] = {{"help",&ShowHelp},
-                                    {"add",&DoAdd},
                                     {"gencaches",&GenCaches},
                                     {"showsrc",&ShowSrcPackage},
                                     {0,0}};
@@ -1835,8 +1769,6 @@ int main(int argc,const char *argv[])                                     /*{{{*/
                                     {"madison",&Madison},
                                     {0,0}};
 
-   CacheInitialize();
-
    // Set up gettext support
    setlocale(LC_ALL,"");
    textdomain(PACKAGE);