#include <unistd.h>
#include <apt-private/private-cmndline.h>
+#include <apt-private/private-output.h>
+#include <apt-private/private-main.h>
#include <apti18n.h>
/*}}}*/
OpTextProgress Progress;
void Prompt(const char *Text);
string PromptLine(const char *Text);
- bool AskCdromName(string &name);
+ bool AskCdromName(string &name) APT_OVERRIDE;
public:
- virtual void Update(string text, int current);
- virtual bool ChangeCdrom();
- virtual OpProgress* GetOpProgress();
+ virtual void Update(string text, int current) APT_OVERRIDE;
+ virtual bool ChangeCdrom() APT_OVERRIDE;
+ virtual OpProgress* GetOpProgress() APT_OVERRIDE;
};
void pkgCdromTextStatus::Prompt(const char *Text)
bool pkgCdromTextStatus::ChangeCdrom()
{
- Prompt(_("Please insert a Disc in the drive and press enter"));
+ Prompt(_("Please insert a Disc in the drive and press [Enter]"));
return true;
}
}
/*}}}*/
// ShowHelp - Show the help screen /*{{{*/
-static bool ShowHelp(CommandLine &)
+static bool ShowHelp(CommandLine &, CommandLine::DispatchWithHelp const * Cmds)
{
- ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION,
- COMMON_ARCH,__DATE__,__TIME__);
+ 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"
+
+ 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"
- "and /etc/fstab.\n"
- "\n"
- "Commands:\n"
- " add - Add a CDROM\n"
- " ident - Report the identity of a CDROM\n"
- "\n"
- "Options:\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"
" --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";
+ "See fstab(5)\n");
return true;
}
/*}}}*/
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));
+ InitLocale();
- // Set up gettext support
- setlocale(LC_ALL,"");
- textdomain(PACKAGE);
+ CommandLine::DispatchWithHelp Cmds[] = {
+ {"add", &DoAdd, "Add a CDROM"},
+ {"ident", &DoIdent, "Report the identity of a CDROM"},
+ {nullptr, nullptr, nullptr}
+ };
// Parse the command line and initialize the package library
- CommandLine CmdL(Args.data(),_config);
- if (pkgInitConfig(*_config) == false ||
- CmdL.Parse(argc,argv) == false ||
- pkgInitSystem(*_config,_system) == false)
- {
- _error->DumpErrors();
- return 100;
- }
-
- // See if the help should be shown
- if (_config->FindB("help") == true || _config->FindB("version") == true ||
- CmdL.FileSize() == 0)
- return ShowHelp(CmdL);
+ CommandLine CmdL;
+ ParseCommandLine(CmdL, Cmds, "apt-cdrom", &_config, &_system, argc, argv, ShowHelp);
- // Deal with stdout not being a tty
- if (isatty(STDOUT_FILENO) && _config->FindI("quiet", -1) == -1)
- _config->Set("quiet","1");
-
- // Match the operation
- bool returned = CmdL.DispatchArg(Cmds);
+ InitOutput();
- if (_config->FindI("quiet",0) > 0)
- _error->DumpErrors();
- else
- _error->DumpErrors(GlobalError::DEBUG);
- return returned == true ? 0 : 100;
+ return DispatchCommandLine(CmdL, Cmds);
}
/*}}}*/