From b917917067e757c4479a344a263ef7cf43c00866 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Mon, 12 Aug 2013 23:24:08 +0200 Subject: squash merge of the feature/apt-binary branch without the changes from experimental --- cmdline/apt.cc | 158 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 cmdline/apt.cc (limited to 'cmdline/apt.cc') diff --git a/cmdline/apt.cc b/cmdline/apt.cc new file mode 100644 index 000000000..e30967ec2 --- /dev/null +++ b/cmdline/apt.cc @@ -0,0 +1,158 @@ +// -*- mode: cpp; mode: fold -*- +// Description /*{{{*/ +/* ###################################################################### + + apt - CLI UI for apt + + Returns 100 on failure, 0 on success. + + ##################################################################### */ + /*}}}*/ +// Include Files /*{{{*/ +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + /*}}}*/ + +bool ShowHelp(CommandLine &CmdL) +{ + ioprintf(c1out,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, + COMMON_ARCH,__DATE__,__TIME__); + + // FIXME: generate from CommandLine + c1out << + _("Usage: apt [options] command\n" + "\n" + "CLI for apt.\n" + "Commands: \n" + " list - list packages based on package names\n" + " search - search in package descriptions\n" + " show - show package details\n" + "\n" + " update - update list of available packages\n" + " install - install packages\n" + " upgrade - upgrade the systems packages\n" + ); + + return true; +} + +int main(int argc, const char *argv[]) /*{{{*/ +{ + CommandLine::Dispatch Cmds[] = {{"list",&List}, + {"search", &FullTextSearch}, + {"show", &APT::Cmd::ShowPackage}, + // needs root + {"install",&DoInstall}, + {"remove", &DoInstall}, + {"update",&DoUpdate}, + {"upgrade",&DoUpgradeWithAllowNewPackages}, + // helper + {"moo",&DoMoo}, + {"help",&ShowHelp}, + {0,0}}; + + std::vector Args = getCommandArgs("apt", CommandLine::GetCommand(Cmds, argc, argv)); + + if(!isatty(1)) + { + std::cerr << std::endl + << "WARNING WARNING " + << argv[0] + << " is *NOT* intended for scripts " + << "use at your own peril^Wrisk" + << std::endl + << std::endl; + } + + InitOutput(); + + // Set up gettext support + setlocale(LC_ALL,""); + textdomain(PACKAGE); + + if(pkgInitConfig(*_config) == false) + { + _error->DumpErrors(); + return 100; + } + + // FIXME: move into a new libprivate/private-install.cc:Install() + _config->Set("DPkgPM::Progress", "1"); + _config->Set("Apt::Color", "1"); + + // Parse the command line and initialize the package library + CommandLine CmdL(Args.data(), _config); + if (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) + { + ShowHelp(CmdL); + return 0; + } + + // see if we are in simulate mode + CheckSimulateMode(CmdL); + + // parse args + CmdL.DispatchArg(Cmds); + + // Print any errors or warnings found during parsing + bool const Errors = _error->PendingError(); + if (_config->FindI("quiet",0) > 0) + _error->DumpErrors(); + else + _error->DumpErrors(GlobalError::DEBUG); + return Errors == true ? 100 : 0; +} + /*}}}*/ -- cgit v1.2.3