X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/9055d5e68bd09f31df00e45bd14cb599ba3735e5..d1bdb73a96d01896ec8e213a0f14abc38d19a929:/cmdline/apt-get.cc

diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc
index 9ffb7b1ee..95d88e2ad 100644
--- a/cmdline/apt-get.cc
+++ b/cmdline/apt-get.cc
@@ -248,8 +248,9 @@ static bool DoIndexTargets(CommandLine &CmdL)
 {
    pkgCacheFile CacheFile;
    pkgSourceList *SrcList = CacheFile.GetSourceList();
+   pkgCache *Cache = CacheFile.GetPkgCache();
 
-   if (SrcList == NULL)
+   if (SrcList == nullptr || Cache == nullptr)
       return false;
 
    std::string const Format = _config->Find("APT::Get::IndexTargets::Format");
@@ -262,8 +263,7 @@ static bool DoIndexTargets(CommandLine &CmdL)
       if (ReleaseInfo)
       {
 	 AddOptions.insert(std::make_pair("TRUSTED", ((*S)->IsTrusted() ? "yes" : "no")));
-	 pkgCache &Cache = *CacheFile.GetPkgCache();
-	 pkgCache::RlsFileIterator const RlsFile = (*S)->FindInCache(Cache, false);
+	 pkgCache::RlsFileIterator const RlsFile = (*S)->FindInCache(*Cache, false);
 	 if (RlsFile.end())
 	    continue;
 #define APT_RELEASE(X,Y) if (RlsFile.Y() != NULL) AddOptions.insert(std::make_pair(X, RlsFile.Y()))
@@ -299,6 +299,8 @@ static bool DoIndexTargets(CommandLine &CmdL)
 		  stanza << "PDiffs: " << O->second << "\n";
 	       else if (O->first == "COMPRESSIONTYPES")
 		  stanza << "CompressionTypes: " << O->second << "\n";
+	       else if (O->first == "KEEPCOMPRESSEDAS")
+		  stanza << "KeepCompressedAs: " << O->second << "\n";
 	       else if (O->first == "DEFAULTENABLED")
 		  stanza << "DefaultEnabled: " << O->second << "\n";
 	       else
@@ -343,7 +345,7 @@ static bool DoIndexTargets(CommandLine &CmdL)
    return true;
 }
 									/*}}}*/
-bool ShowHelp(CommandLine &, aptDispatchWithHelp const * Cmds)		/*{{{*/
+static bool ShowHelp(CommandLine &)					/*{{{*/
 {
    if (_config->FindB("version") == true)
    {
@@ -371,54 +373,35 @@ bool ShowHelp(CommandLine &, aptDispatchWithHelp const * Cmds)		/*{{{*/
 	       cout << "Pkg:  " << Sys->Label << " (Priority " << Sys->Score(*_config) << ")" << endl;
 	 }
       }
-      
+
       for (unsigned I = 0; I != pkgSourceList::Type::GlobalListLen; I++)
       {
 	 pkgSourceList::Type *Type = pkgSourceList::Type::GlobalList[I];
 	 cout << " S.L: '" << Type->Name << "' " << Type->Label << endl;
-      }      
-      
+      }
+
       for (unsigned I = 0; I != pkgIndexFile::Type::GlobalListLen; I++)
       {
 	 pkgIndexFile::Type *Type = pkgIndexFile::Type::GlobalList[I];
 	 cout << " Idx: " << Type->Label << endl;
-      }      
-      
+      }
+
       return true;
    }
 
    std::cout <<
-    _("Usage: apt-get [options] command\n"
-      "       apt-get [options] install|remove pkg1 [pkg2 ...]\n"
-      "       apt-get [options] source pkg1 [pkg2 ...]\n"
-      "\n"
-      "apt-get is a simple command line interface for downloading and\n"
-      "installing packages. The most frequently used commands are update\n"
-      "and install.\n")
-      << std::endl;
-   ShowHelpListCommands(Cmds);
-   std::cout << std::endl <<
-      _("Options:\n"
-      "  -h  This help text.\n"
-      "  -q  Loggable output - no progress indicator\n"
-      "  -qq No output except for errors\n"
-      "  -d  Download only - do NOT install or unpack archives\n"
-      "  -s  No-act. Perform ordering simulation\n"
-      "  -y  Assume Yes to all queries and do not prompt\n"
-      "  -f  Attempt to correct a system with broken dependencies in place\n"
-      "  -m  Attempt to continue if archives are unlocatable\n"
-      "  -u  Show a list of upgraded packages as well\n"
-      "  -b  Build the source package after fetching it\n"
-      "  -V  Show verbose version numbers\n"
-      "  -c=? Read this configuration file\n"
-      "  -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
-      "See the apt-get(8), sources.list(5) and apt.conf(5) manual\n"
-      "pages for more information and options.\n"
-      "                       This APT has Super Cow Powers.\n");
+      _("Usage: apt-get [options] command\n"
+	    "       apt-get [options] install|remove pkg1 [pkg2 ...]\n"
+	    "       apt-get [options] source pkg1 [pkg2 ...]\n"
+	    "\n"
+	    "apt-get is a command line interface for retrieval of packages\n"
+	    "and information about them from authenticated sources and\n"
+	    "for installation, upgrade and removal of packages together\n"
+	    "with their dependencies.\n");
    return true;
 }
 									/*}}}*/
-std::vector<aptDispatchWithHelp> GetCommands()				/*{{{*/
+static std::vector<aptDispatchWithHelp> GetCommands()			/*{{{*/
 {
    return {
       {"update", &DoUpdate, _("Retrieve new lists of packages")},
@@ -449,11 +432,9 @@ std::vector<aptDispatchWithHelp> GetCommands()				/*{{{*/
 									/*}}}*/
 int main(int argc,const char *argv[])					/*{{{*/
 {
-   InitLocale();
-
    // Parse the command line and initialize the package library
    CommandLine CmdL;
-   auto const Cmds = ParseCommandLine(CmdL, APT_CMD::APT_GET, &_config, &_system, argc, argv);
+   auto const Cmds = ParseCommandLine(CmdL, APT_CMD::APT_GET, &_config, &_system, argc, argv, &ShowHelp, &GetCommands);
 
    InitSignals();
    InitOutput();