summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Kalnischkies <david@kalnischkies.de>2015-10-26 16:50:21 +0100
committerDavid Kalnischkies <david@kalnischkies.de>2015-11-04 18:04:04 +0100
commit41d39345bdc31cb9b8be057cd678aa2890830437 (patch)
tree3aba387df084fca7bccc3838aabe7af92f819543
parent6079b276a959086ff18302cab752b6d7cfe5ad9f (diff)
deal with --version more centrally
Git-Dch: Ignore
-rw-r--r--apt-private/private-cmndline.cc30
-rw-r--r--apt-private/private-cmndline.h1
-rw-r--r--cmdline/apt-cache.cc16
-rw-r--r--cmdline/apt-cdrom.cc16
-rw-r--r--cmdline/apt-config.cc15
-rw-r--r--cmdline/apt-extracttemplates.cc5
-rw-r--r--cmdline/apt-get.cc13
-rw-r--r--cmdline/apt-helper.cc17
-rw-r--r--cmdline/apt-internal-solver.cc2
-rw-r--r--cmdline/apt-mark.cc14
-rw-r--r--cmdline/apt-sortpkgs.cc7
-rw-r--r--cmdline/apt.cc14
-rw-r--r--ftparchive/apt-ftparchive.cc7
13 files changed, 44 insertions, 113 deletions
diff --git a/apt-private/private-cmndline.cc b/apt-private/private-cmndline.cc
index d80168fda..348b698ca 100644
--- a/apt-private/private-cmndline.cc
+++ b/apt-private/private-cmndline.cc
@@ -362,6 +362,25 @@ std::vector<CommandLine::Args> getCommandArgs(APT_CMD const Program, char const
/*}}}*/
#undef CmdMatches
#undef addArg
+static bool ShowCommonHelp(APT_CMD const Binary, CommandLine &CmdL, aptDispatchWithHelp const * Cmds)/*{{{*/
+{
+ std::cout << PACKAGE << " " << PACKAGE_VERSION << " (" << COMMON_ARCH << ")" << std::endl;
+ if (_config->FindB("version") == true && Binary != APT_CMD::APT_GET)
+ return true;
+ return ShowHelp(CmdL, Cmds);
+}
+ /*}}}*/
+void ShowHelpListCommands(aptDispatchWithHelp const * Cmds) /*{{{*/
+{
+ std::cout << _("Commands:") << std::endl;
+ for (; Cmds->Handler != nullptr; ++Cmds)
+ {
+ if (Cmds->Help == nullptr)
+ continue;
+ std::cout << " " << Cmds->Match << " - " << Cmds->Help << std::endl;
+ }
+}
+ /*}}}*/
static void BinarySpecificConfiguration(char const * const Binary) /*{{{*/
{
std::string const binary = flNotDir(Binary);
@@ -397,6 +416,11 @@ std::vector<CommandLine::Dispatch> ParseCommandLine(CommandLine &CmdL, APT_CMD c
std::vector<aptDispatchWithHelp> const CmdsWithHelp = GetCommands();
std::vector<CommandLine::Dispatch> Cmds;
+ if (CmdsWithHelp.empty() == false)
+ {
+ CommandLine::Dispatch const help = { "help", [](CommandLine &){return false;} };
+ Cmds.push_back(std::move(help));
+ }
for (auto const& cmd : CmdsWithHelp)
Cmds.push_back({cmd.Match, cmd.Handler});
@@ -414,7 +438,7 @@ std::vector<CommandLine::Dispatch> ParseCommandLine(CommandLine &CmdL, APT_CMD c
(Sys != NULL && pkgInitSystem(*_config, *Sys) == false))
{
if (_config->FindB("version") == true)
- ShowHelp(CmdL, CmdsWithHelp.data());
+ ShowCommonHelp(Binary, CmdL, CmdsWithHelp.data());
_error->DumpErrors();
exit(100);
@@ -424,12 +448,12 @@ std::vector<CommandLine::Dispatch> ParseCommandLine(CommandLine &CmdL, APT_CMD c
if (_config->FindB("help") == true || _config->FindB("version") == true ||
(CmdL.FileSize() > 0 && strcmp(CmdL.FileList[0], "help") == 0))
{
- ShowHelp(CmdL, CmdsWithHelp.data());
+ ShowCommonHelp(Binary, CmdL, CmdsWithHelp.data());
exit(0);
}
if (Cmds.empty() == false && CmdL.FileSize() == 0)
{
- ShowHelp(CmdL, CmdsWithHelp.data());
+ ShowCommonHelp(Binary, CmdL, CmdsWithHelp.data());
exit(1);
}
return Cmds;
diff --git a/apt-private/private-cmndline.h b/apt-private/private-cmndline.h
index ac17e2e8a..6a6885a33 100644
--- a/apt-private/private-cmndline.h
+++ b/apt-private/private-cmndline.h
@@ -32,6 +32,7 @@ struct aptDispatchWithHelp
std::vector<aptDispatchWithHelp> GetCommands();
bool ShowHelp(CommandLine &CmdL, aptDispatchWithHelp const * Cmds);
+APT_PUBLIC void ShowHelpListCommands(aptDispatchWithHelp const * Cmds);
APT_PUBLIC std::vector<CommandLine::Dispatch> ParseCommandLine(CommandLine &CmdL, APT_CMD const Binary,
Configuration * const * const Cnf, pkgSystem ** const Sys, int const argc, const char * argv[]);
APT_PUBLIC unsigned short DispatchCommandLine(CommandLine &CmdL, std::vector<CommandLine::Dispatch> const &Cmds);
diff --git a/cmdline/apt-cache.cc b/cmdline/apt-cache.cc
index 50af3f329..4e8a51583 100644
--- a/cmdline/apt-cache.cc
+++ b/cmdline/apt-cache.cc
@@ -1524,26 +1524,14 @@ static bool GenCaches(CommandLine &)
/*}}}*/
bool ShowHelp(CommandLine &, aptDispatchWithHelp const * Cmds) /*{{{*/
{
- ioprintf(cout, "%s %s (%s)\n", PACKAGE, PACKAGE_VERSION, COMMON_ARCH);
-
- if (_config->FindB("version") == true)
- return true;
-
std::cout <<
_("Usage: apt-cache [options] command\n"
" apt-cache [options] show pkg1 [pkg2 ...]\n"
"\n"
"apt-cache is a low-level tool used to query information\n"
"from APT's binary cache files\n")
- << std::endl
- << _("Commands:") << std::endl;
- for (; Cmds->Handler != nullptr; ++Cmds)
- {
- if (Cmds->Help == nullptr)
- continue;
- std::cout << " " << Cmds->Match << " - " << Cmds->Help << std::endl;
- }
-
+ << std::endl;
+ ShowHelpListCommands(Cmds);
std::cout << std::endl
<< _("Options:\n"
" -h This help text.\n"
diff --git a/cmdline/apt-cdrom.cc b/cmdline/apt-cdrom.cc
index 699cc550c..00895863b 100644
--- a/cmdline/apt-cdrom.cc
+++ b/cmdline/apt-cdrom.cc
@@ -205,26 +205,14 @@ static bool DoIdent(CommandLine &)
/*}}}*/
bool ShowHelp(CommandLine &, aptDispatchWithHelp const * Cmds) /*{{{*/
{
- ioprintf(cout, "%s %s (%s)\n", PACKAGE, PACKAGE_VERSION, COMMON_ARCH);
-
- if (_config->FindB("version") == true)
- return true;
-
std::cout <<
_("Usage: apt-cdrom [options] command\n"
"\n"
"apt-cdrom is a tool to add CDROM's to APT's source list. The\n"
"CDROM mount point and device information is taken from apt.conf,\n"
"udev and /etc/fstab.\n")
- << std::endl
- << _("Commands:") << std::endl;
- for (; Cmds->Handler != nullptr; ++Cmds)
- {
- if (Cmds->Help == nullptr)
- continue;
- std::cout << " " << Cmds->Match << " - " << Cmds->Help << std::endl;
- }
-
+ << std::endl;
+ ShowHelpListCommands(Cmds);
std::cout << std::endl <<
_("Options:\n"
" -h This help text\n"
diff --git a/cmdline/apt-config.cc b/cmdline/apt-config.cc
index 47e37c2f7..eb096440a 100644
--- a/cmdline/apt-config.cc
+++ b/cmdline/apt-config.cc
@@ -78,23 +78,12 @@ static bool DoDump(CommandLine &CmdL)
/*}}}*/
bool ShowHelp(CommandLine &, aptDispatchWithHelp const * Cmds) /*{{{*/
{
- ioprintf(cout, "%s %s (%s)\n", PACKAGE, PACKAGE_VERSION, COMMON_ARCH);
- if (_config->FindB("version") == true)
- return true;
-
std::cout <<
_("Usage: apt-config [options] command\n"
"\n"
"apt-config is a simple tool to read the APT config file\n")
- << std::endl
- << _("Commands:") << std::endl;
- for (; Cmds->Handler != nullptr; ++Cmds)
- {
- if (Cmds->Help == nullptr)
- continue;
- std::cout << " " << Cmds->Match << " - " << Cmds->Help << std::endl;
- }
-
+ << std::endl;
+ ShowHelpListCommands(Cmds);
std::cout << std::endl <<
_("Options:\n"
" -h This help text.\n"
diff --git a/cmdline/apt-extracttemplates.cc b/cmdline/apt-extracttemplates.cc
index 1b16542fe..b63f2ff16 100644
--- a/cmdline/apt-extracttemplates.cc
+++ b/cmdline/apt-extracttemplates.cc
@@ -217,11 +217,6 @@ bool DebFile::ParseInfo()
/*}}}*/
bool ShowHelp(CommandLine &, aptDispatchWithHelp const *) /*{{{*/
{
- ioprintf(std::cout, "%s %s (%s)\n", PACKAGE, PACKAGE_VERSION, COMMON_ARCH);
-
- if (_config->FindB("version") == true)
- return true;
-
cout <<
_("Usage: apt-extracttemplates file1 [file2 ...]\n"
"\n"
diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc
index 69b12b2c7..474ed3159 100644
--- a/cmdline/apt-get.cc
+++ b/cmdline/apt-get.cc
@@ -1528,8 +1528,6 @@ static bool DoIndexTargets(CommandLine &CmdL)
/*}}}*/
bool ShowHelp(CommandLine &, aptDispatchWithHelp const * Cmds) /*{{{*/
{
- ioprintf(cout, "%s %s (%s)\n", PACKAGE, PACKAGE_VERSION, COMMON_ARCH);
-
if (_config->FindB("version") == true)
{
cout << _("Supported modules:") << endl;
@@ -1580,15 +1578,8 @@ bool ShowHelp(CommandLine &, aptDispatchWithHelp const * Cmds) /*{{{*/
"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
- << _("Commands:") << std::endl;
- for (; Cmds->Handler != nullptr; ++Cmds)
- {
- if (Cmds->Help == nullptr)
- continue;
- std::cout << " " << Cmds->Match << " - " << Cmds->Help << std::endl;
- }
-
+ << std::endl;
+ ShowHelpListCommands(Cmds);
std::cout << std::endl <<
_("Options:\n"
" -h This help text.\n"
diff --git a/cmdline/apt-helper.cc b/cmdline/apt-helper.cc
index b0c1ddacf..be6c2881a 100644
--- a/cmdline/apt-helper.cc
+++ b/cmdline/apt-helper.cc
@@ -107,26 +107,13 @@ static bool DoSrvLookup(CommandLine &CmdL) /*{{{*/
/*}}}*/
bool ShowHelp(CommandLine &, aptDispatchWithHelp const * Cmds) /*{{{*/
{
- ioprintf(std::cout, "%s %s (%s)\n", PACKAGE, PACKAGE_VERSION, COMMON_ARCH);
-
- if (_config->FindB("version") == true)
- return true;
-
std::cout <<
_("Usage: apt-helper [options] command\n"
" apt-helper [options] download-file uri target-path\n"
"\n"
"apt-helper is a internal helper for apt\n")
- << std::endl
- << _("Commands:") << std::endl;
-
- for (; Cmds->Handler != nullptr; ++Cmds)
- {
- if (Cmds->Help == nullptr)
- continue;
- std::cout << " " << Cmds->Match << " - " << Cmds->Help << std::endl;
- }
-
+ << std::endl;
+ ShowHelpListCommands(Cmds);
std::cout << std::endl <<
_("This APT helper has Super Meep Powers.") << std::endl;
return true;
diff --git a/cmdline/apt-internal-solver.cc b/cmdline/apt-internal-solver.cc
index 28989f6cd..ae8c08bba 100644
--- a/cmdline/apt-internal-solver.cc
+++ b/cmdline/apt-internal-solver.cc
@@ -43,8 +43,6 @@
bool ShowHelp(CommandLine &, aptDispatchWithHelp const *) /*{{{*/
{
- ioprintf(std::cout, "%s %s (%s)\n", PACKAGE, PACKAGE_VERSION, COMMON_ARCH);
-
std::cout <<
_("Usage: apt-internal-solver\n"
"\n"
diff --git a/cmdline/apt-mark.cc b/cmdline/apt-mark.cc
index d02e80beb..b06fcc0cc 100644
--- a/cmdline/apt-mark.cc
+++ b/cmdline/apt-mark.cc
@@ -282,23 +282,13 @@ static bool ShowSelection(CommandLine &CmdL) /*{{{*/
/*}}}*/
bool ShowHelp(CommandLine &, aptDispatchWithHelp const * Cmds) /*{{{*/
{
- ioprintf(std::cout, "%s %s (%s)\n", PACKAGE, PACKAGE_VERSION, COMMON_ARCH);
-
std::cout <<
_("Usage: apt-mark [options] {auto|manual} pkg1 [pkg2 ...]\n"
"\n"
"apt-mark is a simple command line interface for marking packages\n"
"as manually or automatically installed. It can also list marks.\n")
- << std::endl
- << _("Commands:") << std::endl;
-
- for (; Cmds->Handler != nullptr; ++Cmds)
- {
- if (Cmds->Help == nullptr)
- continue;
- std::cout << " " << Cmds->Match << " - " << Cmds->Help << std::endl;
- }
-
+ << std::endl;
+ ShowHelpListCommands(Cmds);
std::cout << std::endl
<< _("Options:\n"
" -h This help text.\n"
diff --git a/cmdline/apt-sortpkgs.cc b/cmdline/apt-sortpkgs.cc
index b5a2c12df..f9aa7d728 100644
--- a/cmdline/apt-sortpkgs.cc
+++ b/cmdline/apt-sortpkgs.cc
@@ -134,11 +134,7 @@ static bool DoIt(string InFile)
/*}}}*/
bool ShowHelp(CommandLine &, aptDispatchWithHelp const *) /*{{{*/
{
- ioprintf(std::cout, "%s %s (%s)\n", PACKAGE, PACKAGE_VERSION, COMMON_ARCH);
- if (_config->FindB("version") == true)
- return true;
-
- cout <<
+ std::cout <<
_("Usage: apt-sortpkgs [options] file1 [file2 ...]\n"
"\n"
"apt-sortpkgs is a simple tool to sort package files. The -s option is used\n"
@@ -149,7 +145,6 @@ bool ShowHelp(CommandLine &, aptDispatchWithHelp const *) /*{{{*/
" -s Use source file sorting\n"
" -c=? Read this configuration file\n"
" -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n");
-
return true;
}
/*}}}*/
diff --git a/cmdline/apt.cc b/cmdline/apt.cc
index be2f7663e..3eae22199 100644
--- a/cmdline/apt.cc
+++ b/cmdline/apt.cc
@@ -39,22 +39,12 @@
bool ShowHelp(CommandLine &, aptDispatchWithHelp const * Cmds) /*{{{*/
{
- ioprintf(std::cout, "%s %s (%s)\n", PACKAGE, PACKAGE_VERSION, COMMON_ARCH);
-
- // FIXME: generate from CommandLine
std::cout <<
_("Usage: apt [options] command\n"
"\n"
"CLI for apt.\n")
- << std::endl
- << _("Commands:") << std::endl;
- for (; Cmds->Handler != nullptr; ++Cmds)
- {
- if (Cmds->Help == nullptr)
- continue;
- std::cout << " " << Cmds->Match << " - " << Cmds->Help << std::endl;
- }
-
+ << std::endl;
+ ShowHelpListCommands(Cmds);
return true;
}
/*}}}*/
diff --git a/ftparchive/apt-ftparchive.cc b/ftparchive/apt-ftparchive.cc
index 0abb3e2dd..99d5627f0 100644
--- a/ftparchive/apt-ftparchive.cc
+++ b/ftparchive/apt-ftparchive.cc
@@ -606,11 +606,7 @@ static void LoadBinDir(vector<PackageMap> &PkgList,Configuration &Setup)
bool ShowHelp(CommandLine &, aptDispatchWithHelp const *) /*{{{*/
{
- ioprintf(cout, "%s %s (%s)\n", PACKAGE, PACKAGE_VERSION, COMMON_ARCH);
- if (_config->FindB("version") == true)
- return true;
-
- cout <<
+ std::cout <<
_("Usage: apt-ftparchive [options] command\n"
"Commands: packages binarypath [overridefile [pathprefix]]\n"
" sources srcpath [overridefile [pathprefix]]\n"
@@ -649,7 +645,6 @@ bool ShowHelp(CommandLine &, aptDispatchWithHelp const *) /*{{{*/
" --contents Control contents file generation\n"
" -c=? Read this configuration file\n"
" -o=? Set an arbitrary configuration option") << endl;
-
return true;
}
/*}}}*/