#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 &, CommandLine::DispatchWithHelp const * Cmds)
+static bool ShowHelp(CommandLine &) /*{{{*/
{
- 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::cout << std::endl <<
- _("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;
}
/*}}}*/
-int main(int argc,const char *argv[]) /*{{{*/
+static std::vector<aptDispatchWithHelp> GetCommands() /*{{{*/
{
- CommandLine::DispatchWithHelp Cmds[] = {
+ return {
{"add", &DoAdd, "Add a CDROM"},
{"ident", &DoIdent, "Report the identity of a CDROM"},
{nullptr, nullptr, nullptr}
};
-
- std::vector<CommandLine::Args> Args = getCommandArgs("apt-cdrom", CommandLine::GetCommand(Cmds, argc, argv));
-
- // Set up gettext support
- setlocale(LC_ALL,"");
- textdomain(PACKAGE);
-
+}
+ /*}}}*/
+int main(int argc,const char *argv[]) /*{{{*/
+{
// 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, &ShowHelp, &GetCommands);
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);
}
/*}}}*/