]> git.saurik.com Git - apt.git/blobdiff - cmdline/apt-cdrom.cc
ensure a good clock() value for usage and tests
[apt.git] / cmdline / apt-cdrom.cc
index 1838a76fedef5aa89883d40f1ad04bb08c454642..bac808a416e4beb2fe3a3451a8f61f586edea6d2 100644 (file)
@@ -32,6 +32,7 @@
 
 #include <apt-private/private-cmndline.h>
 #include <apt-private/private-output.h>
+#include <apt-private/private-main.h>
 
 #include <apti18n.h>
                                                                        /*}}}*/
@@ -202,71 +203,34 @@ static bool DoIdent(CommandLine &)
    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);
 }
                                                                        /*}}}*/