X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/3163087b04ca5c297a7c98c018ba5c30e850a11e..aa368243bb03a45b5a3831ac30a16882f93fc6fe:/apt-private/private-main.cc diff --git a/apt-private/private-main.cc b/apt-private/private-main.cc index 668b1733a..9eb306834 100644 --- a/apt-private/private-main.cc +++ b/apt-private/private-main.cc @@ -2,6 +2,7 @@ #include #include +#include #include @@ -13,22 +14,28 @@ #include -void InitSignals() +void InitLocale() /*{{{*/ +{ + setlocale(LC_ALL,""); + textdomain(PACKAGE); +} + /*}}}*/ +void InitSignals() /*{{{*/ { - // Setup the signals signal(SIGPIPE,SIG_IGN); } - - -void CheckSimulateMode(CommandLine &CmdL) + /*}}}*/ +void CheckIfSimulateMode(CommandLine &CmdL) /*{{{*/ { - // simulate user-friendly if apt-get has no root privileges - if (getuid() != 0 && _config->FindB("APT::Get::Simulate") == true && + // 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 (_config->FindB("APT::Get::Show-User-Simulation-Note",true) == true) + if (getuid() != 0 && _config->FindB("APT::Get::Show-User-Simulation-Note",true) == true) std::cout << _("NOTE: This is only a simulation!\n" " apt-get needs root privileges for real execution.\n" " Keep also in mind that locking is deactivated,\n" @@ -37,3 +44,20 @@ void CheckSimulateMode(CommandLine &CmdL) _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; + } +} + /*}}}*/