#include <apt-private/private-cmndline.h>
#include <apt-private/private-output.h>
+#include <apt-private/private-main.h>
#include <apti18n.h>
/*}}}*/
return AddOrIdent(false);
}
/*}}}*/
-// ShowHelp - Show the help screen /*{{{*/
-static bool ShowHelp(CommandLine &)
+bool ShowHelp(CommandLine &) /*{{{*/
{
- ioprintf(cout, "%s %s (%s)\n", PACKAGE, PACKAGE_VERSION, COMMON_ARCH);
-
- if (_config->FindB("version") == true)
- return true;
-
- 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"
- "and /etc/fstab.\n"
+ std::cout <<
+ _("Usage: apt-cdrom [options] command\n"
"\n"
- "Commands:\n"
- " add - Add a CDROM\n"
- " ident - Report the identity of a CDROM\n"
- "\n"
- "Options:\n"
- " -h This help text\n"
- " -d CD-ROM mount point\n"
- " -r Rename a recognized CD-ROM\n"
- " -m No mounting\n"
- " -f Fast mode, don't check package files\n"
- " -a Thorough scan mode\n"
- " --no-auto-detect Do not try to auto detect drive and mount point\n"
- " -c=? Read this configuration file\n"
- " -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n"
- "See fstab(5)\n";
+ "apt-cdrom is used to add CDROM's, USB flashdrives and other removable\n"
+ "media types as package sources to APT. The mount point and device\n"
+ "information is taken from apt.conf(5), udev(7) and fstab(5).\n");
return true;
}
/*}}}*/
+std::vector<aptDispatchWithHelp> GetCommands() /*{{{*/
+{
+ return {
+ {"add", &DoAdd, "Add a CDROM"},
+ {"ident", &DoIdent, "Report the identity of a CDROM"},
+ {nullptr, nullptr, nullptr}
+ };
+}
+ /*}}}*/
int main(int argc,const char *argv[]) /*{{{*/
{
- CommandLine::Dispatch Cmds[] = {
- {"add",&DoAdd},
- {"ident",&DoIdent},
- {"help",&ShowHelp},
- {0,0}};
-
- std::vector<CommandLine::Args> Args = getCommandArgs("apt-cdrom", CommandLine::GetCommand(Cmds, argc, argv));
-
- // Set up gettext support
- setlocale(LC_ALL,"");
- textdomain(PACKAGE);
+ InitLocale();
// Parse the command line and initialize the package library
CommandLine CmdL;
- ParseCommandLine(CmdL, Cmds, Args.data(), &_config, &_system, argc, argv, ShowHelp);
+ auto const Cmds = ParseCommandLine(CmdL, APT_CMD::APT_CDROM, &_config, &_system, argc, argv);
InitOutput();
- // Match the operation
- bool returned = CmdL.DispatchArg(Cmds);
-
- if (_config->FindI("quiet",0) > 0)
- _error->DumpErrors();
- else
- _error->DumpErrors(GlobalError::DEBUG);
- return returned == true ? 0 : 100;
+ return DispatchCommandLine(CmdL, Cmds);
}
/*}}}*/