From 851b6a097165af4d51c0db01b5e05256e5006896 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 11:00:48 +0200 Subject: Adding upstream version 2.6.1. Signed-off-by: Daniel Baumann --- apt-private/private-main.cc | 90 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 apt-private/private-main.cc (limited to 'apt-private/private-main.cc') diff --git a/apt-private/private-main.cc b/apt-private/private-main.cc new file mode 100644 index 0000000..d4ce0ab --- /dev/null +++ b/apt-private/private-main.cc @@ -0,0 +1,90 @@ +#include + +#include +#include +#include +#include + +#include + +#include +#include + +#include +#include +#include + +#include + +void InitLocale(APT_CMD const binary) /*{{{*/ +{ + try { + std::locale::global(std::locale("")); + } catch (...) { + setlocale(LC_ALL, ""); + } + switch(binary) + { + case APT_CMD::APT: + case APT_CMD::APT_CACHE: + case APT_CMD::APT_CDROM: + case APT_CMD::APT_CONFIG: + case APT_CMD::APT_DUMP_SOLVER: + case APT_CMD::APT_HELPER: + case APT_CMD::APT_GET: + case APT_CMD::APT_MARK: + case APT_CMD::RRED: + textdomain("apt"); + break; + case APT_CMD::APT_EXTRACTTEMPLATES: + case APT_CMD::APT_FTPARCHIVE: + case APT_CMD::APT_INTERNAL_PLANNER: + case APT_CMD::APT_INTERNAL_SOLVER: + case APT_CMD::APT_SORTPKG: + textdomain("apt-utils"); + break; + } +} + /*}}}*/ +void InitSignals() /*{{{*/ +{ + signal(SIGPIPE,SIG_IGN); +} + /*}}}*/ +void CheckIfSimulateMode(CommandLine &CmdL) /*{{{*/ +{ + // disable locking in simulation, but show the message only for users + // as root hasn't the same problems like unreadable files which can heavily + // distort the simulation. + if (_config->FindB("APT::Get::Simulate") == true && + (CmdL.FileSize() == 0 || + (strcmp(CmdL.FileList[0], "source") != 0 && strcmp(CmdL.FileList[0], "download") != 0 && + strcmp(CmdL.FileList[0], "changelog") != 0))) + { + if (getuid() != 0 && _config->FindB("APT::Get::Show-User-Simulation-Note",true) == true) + // TRANSLATORS: placeholder is a binary name like apt or apt-get + ioprintf(std::cout, _("NOTE: This is only a simulation!\n" + " %s needs root privileges for real execution.\n" + " Keep also in mind that locking is deactivated,\n" + " so don't depend on the relevance to the real current situation!\n"), + _config->Find("Binary").c_str()); + _config->Set("Debug::NoLocking",true); + } +} + /*}}}*/ +void CheckIfCalledByScript(int argc, const char *argv[]) /*{{{*/ +{ + if (unlikely(argc < 1)) return; + + if(!isatty(STDOUT_FILENO) && + _config->FindB("Apt::Cmd::Disable-Script-Warning", false) == false) + { + std::cerr << std::endl + << "WARNING: " << flNotDir(argv[0]) << " " + << "does not have a stable CLI interface. " + << "Use with caution in scripts." + << std::endl + << std::endl; + } +} + /*}}}*/ -- cgit v1.2.3