]>
Commit | Line | Data |
---|---|---|
453b82a3 | 1 | #include <config.h> |
b9179170 | 2 | |
453b82a3 | 3 | #include <apt-pkg/cmndline.h> |
b9179170 | 4 | #include <apt-pkg/configuration.h> |
e7e10e47 | 5 | #include <apt-pkg/fileutl.h> |
453b82a3 DK |
6 | |
7 | #include <apt-private/private-main.h> | |
8 | ||
9 | #include <iostream> | |
8b79c94a DK |
10 | #include <locale> |
11 | ||
453b82a3 DK |
12 | #include <string.h> |
13 | #include <unistd.h> | |
3163087b | 14 | #include <signal.h> |
b9179170 MV |
15 | |
16 | #include <apti18n.h> | |
17 | ||
3163087b | 18 | |
570ec96d | 19 | void InitLocale(APT_CMD const binary) /*{{{*/ |
e7e10e47 | 20 | { |
62600666 DK |
21 | try { |
22 | std::locale::global(std::locale("")); | |
23 | } catch (...) { | |
24 | setlocale(LC_ALL, ""); | |
25 | } | |
570ec96d DK |
26 | switch(binary) |
27 | { | |
28 | case APT_CMD::APT: | |
29 | case APT_CMD::APT_CACHE: | |
30 | case APT_CMD::APT_CDROM: | |
31 | case APT_CMD::APT_CONFIG: | |
32 | case APT_CMD::APT_HELPER: | |
33 | case APT_CMD::APT_GET: | |
34 | case APT_CMD::APT_MARK: | |
35 | textdomain("apt"); | |
36 | break; | |
37 | case APT_CMD::APT_EXTRACTTEMPLATES: | |
38 | case APT_CMD::APT_FTPARCHIVE: | |
39 | case APT_CMD::APT_INTERNAL_SOLVER: | |
40 | case APT_CMD::APT_SORTPKG: | |
41 | textdomain("apt-utils"); | |
42 | break; | |
43 | } | |
e7e10e47 | 44 | } |
570ec96d | 45 | void InitLocale() {} |
e7e10e47 DK |
46 | /*}}}*/ |
47 | void InitSignals() /*{{{*/ | |
3163087b | 48 | { |
3163087b MV |
49 | signal(SIGPIPE,SIG_IGN); |
50 | } | |
e7e10e47 DK |
51 | /*}}}*/ |
52 | void CheckIfSimulateMode(CommandLine &CmdL) /*{{{*/ | |
b9179170 | 53 | { |
0d5b9da9 DK |
54 | // disable locking in simulation, but show the message only for users |
55 | // as root hasn't the same problems like unreadable files which can heavily | |
56 | // distort the simulation. | |
57 | if (_config->FindB("APT::Get::Simulate") == true && | |
b9179170 MV |
58 | (CmdL.FileSize() == 0 || |
59 | (strcmp(CmdL.FileList[0], "source") != 0 && strcmp(CmdL.FileList[0], "download") != 0 && | |
60 | strcmp(CmdL.FileList[0], "changelog") != 0))) | |
61 | { | |
0d5b9da9 | 62 | if (getuid() != 0 && _config->FindB("APT::Get::Show-User-Simulation-Note",true) == true) |
b9179170 MV |
63 | std::cout << _("NOTE: This is only a simulation!\n" |
64 | " apt-get needs root privileges for real execution.\n" | |
65 | " Keep also in mind that locking is deactivated,\n" | |
66 | " so don't depend on the relevance to the real current situation!" | |
67 | ) << std::endl; | |
68 | _config->Set("Debug::NoLocking",true); | |
69 | } | |
70 | } | |
e7e10e47 DK |
71 | /*}}}*/ |
72 | void CheckIfCalledByScript(int argc, const char *argv[]) /*{{{*/ | |
73 | { | |
74 | if (unlikely(argc < 1)) return; | |
75 | ||
76 | if(!isatty(STDOUT_FILENO) && | |
77 | _config->FindB("Apt::Cmd::Disable-Script-Warning", false) == false) | |
78 | { | |
79 | std::cerr << std::endl | |
80 | << "WARNING: " << flNotDir(argv[0]) << " " | |
81 | << "does not have a stable CLI interface. " | |
82 | << "Use with caution in scripts." | |
83 | << std::endl | |
84 | << std::endl; | |
85 | } | |
86 | } | |
87 | /*}}}*/ |