Compare commits

...

5 Commits

Author SHA1 Message Date
Daniele Medri 972e81629d Italian: removed spurious lines of old labels 2020-03-01 12:00:42 +01:00
Daniele Medri f7ae155b14 italian: language updates 2020-03-01 12:00:42 +01:00
Yu Watanabe 8ad2012d1e
Merge pull request #14966 from keszybz/journalctl-facilities
journalctl: filtering by facility
2020-03-01 13:17:00 +09:00
Zbigniew Jędrzejewski-Szmek 196dedd503 journalctl: implement --facility=foo
Fixes #9716.
2020-02-29 18:07:37 +01:00
Zbigniew Jędrzejewski-Szmek aa73f181e9 basic/string-table: avoid crash when table is sparse
Generated _from_string() would crash when invoked on a table with some
holes.
2020-02-27 21:36:58 +01:00
4 changed files with 178 additions and 31 deletions

View File

@ -597,6 +597,16 @@
priorities.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--facility=</option></term>
<listitem><para>Filter output by syslog facility. Takes a comma-separated list of numbers or facility
names. The names are the usual syslog facilities as documented in
<citerefentry project='man-pages'><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
<option>--facility=help</option> may be used to display a list of known facility names and exit.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-g</option></term>
<term><option>--grep=</option></term>

119
po/it.po
View File

@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: systemd\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-01-19 11:37+0100\n"
"PO-Revision-Date: 2020-01-19 11:46+0100\n"
"POT-Creation-Date: 2020-02-27 17:10+0100\n"
"PO-Revision-Date: 2020-02-27 17:22+0100\n"
"Last-Translator: Daniele Medri <dmedri@gmail.com>\n"
"Language-Team: Italian\n"
"Language: it\n"
@ -70,6 +70,59 @@ msgstr "Ricarica lo stato di systemd"
msgid "Authentication is required to reload the systemd state."
msgstr "Autenticazione richiesta per riavviare lo stato di sistemd."
#: src/home/org.freedesktop.home1.policy:13
msgid "Create a home area"
msgstr "Crea un'area home"
#: src/home/org.freedesktop.home1.policy:14
msgid "Authentication is required to creat a user's home area."
msgstr "Autenticazione richiesta per creare un'area home per l'utente."
#: src/home/org.freedesktop.home1.policy:23
msgid "Remove a home area"
msgstr "Rimuovi un'area home"
#: src/home/org.freedesktop.home1.policy:24
msgid "Authentication is required to remov a user's home area."
msgstr "Autenticazione richiesta per rimuovere un'area home per l'utente."
#: src/home/org.freedesktop.home1.policy:33
msgid "Check credentials of a home area"
msgstr "Controlla credenziali di un'area home"
#: src/home/org.freedesktop.home1.policy:34
msgid ""
"Authentication is required to check credentials against a user's home area."
msgstr ""
"Autenticazione richiesta per controllare le credenziali di un'area home per "
"l'utente."
#: src/home/org.freedesktop.home1.policy:43
msgid "Update a home area"
msgstr "Aggiorna un'area home"
#: src/home/org.freedesktop.home1.policy:44
msgid "Authentication is required to updat a user's home area."
msgstr "Autenticazione richiesta per aggiornare un'area home per l'utente."
#: src/home/org.freedesktop.home1.policy:53
msgid "Resize a home area"
msgstr "Ridimensiona un'area home"
#: src/home/org.freedesktop.home1.policy:54
msgid "Authentication is required to resiz a user's home area."
msgstr "Autenticazione richiesta per ridimensionare l'area home dell'utente."
#: src/home/org.freedesktop.home1.policy:63
msgid "Change password of a home area"
msgstr "Cambia password di un'area home"
#: src/home/org.freedesktop.home1.policy:64
msgid "Authentication is required to chang the password of a user's home area."
msgstr ""
"Autenticazione richiesta per cambiare le password per l'area home "
"dell'utente."
#: src/hostname/org.freedesktop.hostname1.policy:20
msgid "Set host name"
msgstr "Configura il nome host"
@ -293,8 +346,7 @@ msgid "Flush device to seat attachments"
msgstr "Scollega i dispositivi dalla postazione"
#: src/login/org.freedesktop.login1.policy:149
msgid ""
"Authentication is required to reset how devices are attached to seats."
msgid "Authentication is required to reset how devices are attached to seats."
msgstr ""
"Autenticazione richiesta per ripristinare come i dispositivi sono collegati "
"alle postazioni."
@ -325,8 +377,8 @@ msgstr "Spegni il sistema mentre un'applicazione chiede di inibirne l'azione"
#: src/login/org.freedesktop.login1.policy:181
msgid ""
"Authentication is required to power off the system while an application "
"is inhibiting this."
"Authentication is required to power off the system while an application is "
"inhibiting this."
msgstr ""
"Autenticazione richiesta per spegnere il sistema mentre un'applicazione "
"chiede di inibirne l'azione."
@ -345,8 +397,8 @@ msgstr "Riavvia il sistema mentre altri utenti sono connessi"
#: src/login/org.freedesktop.login1.policy:203
msgid ""
"Authentication is required to reboot the system while other users are "
"logged in."
"Authentication is required to reboot the system while other users are logged "
"in."
msgstr ""
"Autenticazione richiesta per riavviare il sistema mentre altri utenti sono "
"connessi."
@ -357,8 +409,8 @@ msgstr "Riavvia il sistema mentre un'applicazione chiede di inibirne l'azione"
#: src/login/org.freedesktop.login1.policy:214
msgid ""
"Authentication is required to reboot the system while an application "
"is inhibiting this."
"Authentication is required to reboot the system while an application is "
"inhibiting this."
msgstr ""
"Autenticazione richiesta per riavviare il sistema mentre un'applicazione "
"chiede di inibirne l'azione."
@ -377,8 +429,8 @@ msgstr "Ferma il sistema mentre altri utenti sono connessi"
#: src/login/org.freedesktop.login1.policy:236
msgid ""
"Authentication is required to halt the system while other users are "
"logged in."
"Authentication is required to halt the system while other users are logged "
"in."
msgstr ""
"Autenticazione richiesta per fermare il sistema mentre altri utenti sono "
"connessi."
@ -389,11 +441,11 @@ msgstr "Ferma il sistema mentre un'applicazione chiede di inibirne l'azione"
#: src/login/org.freedesktop.login1.policy:247
msgid ""
"Authentication is required to halt the system while an application asked "
"to inhibit it."
"Authentication is required to halt the system while an application is "
"inhibiting this."
msgstr ""
"Autenticazione richiesta per fermare il sistema mentre un'applicazione "
"chiede di inibirne l'azione."
"Autenticazione richiesta per ibernare il sistema mentre un'applicazione ne "
"inibisce l'azione."
#: src/login/org.freedesktop.login1.policy:257
msgid "Suspend the system"
@ -421,8 +473,8 @@ msgstr "Sospendi il sistema mentre un'applicazione chiede di inibirne l'azione"
#: src/login/org.freedesktop.login1.policy:279
msgid ""
"Authentication is required to suspend the system while an application "
"is inhibiting this."
"Authentication is required to suspend the system while an application is "
"inhibiting this."
msgstr ""
"Autenticazione richiesta per sospendere il sistema mentre un'applicazione "
"chiede di inibirne l'azione."
@ -453,8 +505,8 @@ msgstr "Iberna il sistema mentre un'applicazione chiede di inibirne l'azione"
#: src/login/org.freedesktop.login1.policy:311
msgid ""
"Authentication is required to hibernate the system while an application "
"is inhibiting this."
"Authentication is required to hibernate the system while an application is "
"inhibiting this."
msgstr ""
"Autenticazione richiesta per ibernare il sistema mentre un'applicazione "
"chiede di inibirne l'azione."
@ -464,8 +516,7 @@ msgid "Manage active sessions, users and seats"
msgstr "Gestione delle sessioni attive, utenti e postazioni"
#: src/login/org.freedesktop.login1.policy:322
msgid ""
"Authentication is required to manage active sessions, users and seats."
msgid "Authentication is required to manage active sessions, users and seats."
msgstr ""
"Autenticazione richiesta per gestire le sessioni attive, gli utenti e le "
"postazioni."
@ -532,6 +583,14 @@ msgstr "Configura un messaggio per gli utenti"
msgid "Authentication is required to set a wall message"
msgstr "Autenticazione richiesta per configurare un messaggio per gli utenti"
#: src/login/org.freedesktop.login1.policy:395
msgid "Change Session"
msgstr "Cambia sessione"
#: src/login/org.freedesktop.login1.policy:396
msgid "Authentication is required to change the virtual terminal."
msgstr "Autenticazione richiesta per cambiare il terminale virtuale."
#: src/machine/org.freedesktop.machine1.policy:22
msgid "Log into a local container"
msgstr "Accedi ad un container locale"
@ -835,23 +894,23 @@ msgstr ""
"Autenticazione richiesta per verificare se la sincronizzazione dell'orario "
"in rete deve essere attivata."
#: src/core/dbus-unit.c:354
#: src/core/dbus-unit.c:356
msgid "Authentication is required to start '$(unit)'."
msgstr "Autenticazione richiesta per avviare '$(unit)'."
#: src/core/dbus-unit.c:355
#: src/core/dbus-unit.c:357
msgid "Authentication is required to stop '$(unit)'."
msgstr "Autenticazione richiesta per fermare '$(unit)'."
#: src/core/dbus-unit.c:356
#: src/core/dbus-unit.c:358
msgid "Authentication is required to reload '$(unit)'."
msgstr "Autenticazione richiesta per ricaricare '$(unit)'."
#: src/core/dbus-unit.c:357 src/core/dbus-unit.c:358
#: src/core/dbus-unit.c:359 src/core/dbus-unit.c:360
msgid "Authentication is required to restart '$(unit)'."
msgstr "Autenticazione richiesta per riavviare '$(unit)'."
#: src/core/dbus-unit.c:530
#: src/core/dbus-unit.c:532
msgid ""
"Authentication is required to send a UNIX signal to the processes of "
"'$(unit)'."
@ -859,16 +918,16 @@ msgstr ""
"Autenticazione richiesta per inviare un segnale UNIX ai processi di "
"'$(unit)'."
#: src/core/dbus-unit.c:561
#: src/core/dbus-unit.c:563
msgid "Authentication is required to reset the \"failed\" state of '$(unit)'."
msgstr ""
"Autenticazione richiesta per riconfigurare lo stato \"fallito\" di '$(unit)'."
#: src/core/dbus-unit.c:594
#: src/core/dbus-unit.c:596
msgid "Authentication is required to set properties on '$(unit)'."
msgstr "Autenticazione richiesta per configurare le proprietà di '$(unit)'."
#: src/core/dbus-unit.c:703
#: src/core/dbus-unit.c:705
msgid ""
"Authentication is required to delete files and directories associated with "
"'$(unit)'."

View File

@ -44,7 +44,7 @@ ssize_t string_table_lookup(const char * const *table, size_t len, const char *k
char *s; \
if (i < 0 || i > max) \
return -ERANGE; \
if (i < (type) ELEMENTSOF(name##_table)) { \
if (i < (type) ELEMENTSOF(name##_table) && name##_table[i]) { \
s = strdup(name##_table[i]); \
if (!s) \
return -ENOMEM; \

View File

@ -62,6 +62,7 @@
#include "sigbus.h"
#include "string-table.h"
#include "strv.h"
#include "stdio-util.h"
#include "syslog-util.h"
#include "terminal-util.h"
#include "tmpfile-util.h"
@ -101,6 +102,7 @@ static const char *arg_directory = NULL;
static char **arg_file = NULL;
static bool arg_file_stdin = false;
static int arg_priorities = 0xFF;
static Set *arg_facilities = NULL;
static char *arg_verify_key = NULL;
#if HAVE_GCRYPT
static usec_t arg_interval = DEFAULT_FSS_INTERVAL_USEC;
@ -303,6 +305,21 @@ static int parse_boot_descriptor(const char *x, sd_id128_t *boot_id, int *offset
return 1;
}
static int help_facilities(void) {
if (!arg_quiet)
puts("Available facilities:");
for (int i = 0; i < LOG_NFACILITIES; i++) {
_cleanup_free_ char *t = NULL;
if (log_facility_unshifted_to_string_alloc(i, &t))
return log_oom();
puts(t);
}
return 0;
}
static int help(void) {
_cleanup_free_ char *link = NULL;
int r;
@ -332,6 +349,7 @@ static int help(void) {
" --user-unit=UNIT Show logs from the specified user unit\n"
" -t --identifier=STRING Show entries with the specified syslog identifier\n"
" -p --priority=RANGE Show entries with the specified priority\n"
" --facility=FACILITY... Show entries with the specified facilities\n"
" -g --grep=PATTERN Show entries with MESSAGE matching PATTERN\n"
" --case-sensitive[=BOOL] Force case sensitive or insenstive matching\n"
" -e --pager-end Immediately jump to the end in the pager\n"
@ -404,6 +422,7 @@ static int parse_argv(int argc, char *argv[]) {
ARG_SYSTEM,
ARG_ROOT,
ARG_HEADER,
ARG_FACILITY,
ARG_SETUP_KEYS,
ARG_FILE,
ARG_INTERVAL,
@ -461,6 +480,7 @@ static int parse_argv(int argc, char *argv[]) {
{ "header", no_argument, NULL, ARG_HEADER },
{ "identifier", required_argument, NULL, 't' },
{ "priority", required_argument, NULL, 'p' },
{ "facility", required_argument, NULL, ARG_FACILITY },
{ "grep", required_argument, NULL, 'g' },
{ "case-sensitive", optional_argument, NULL, ARG_CASE_SENSITIVE },
{ "setup-keys", no_argument, NULL, ARG_SETUP_KEYS },
@ -832,6 +852,41 @@ static int parse_argv(int argc, char *argv[]) {
break;
}
case ARG_FACILITY: {
const char *p;
for (p = optarg;;) {
_cleanup_free_ char *fac = NULL;
int num;
r = extract_first_word(&p, &fac, ",", 0);
if (r < 0)
return log_error_errno(r, "Failed to parse facilities: %s", optarg);
if (r == 0)
break;
if (streq(fac, "help")) {
help_facilities();
return 0;
}
num = log_facility_unshifted_from_string(fac);
if (num < 0)
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
"Bad --facility= argument \"%s\".", fac);
r = set_ensure_allocated(&arg_facilities, NULL);
if (r < 0)
return log_oom();
r = set_put(arg_facilities, INT_TO_PTR(num));
if (r < 0)
return log_oom();
}
break;
}
#if HAVE_PCRE2
case 'g':
arg_pattern = optarg;
@ -1676,6 +1731,24 @@ static int add_priorities(sd_journal *j) {
return 0;
}
static int add_facilities(sd_journal *j) {
void *p;
Iterator it;
int r;
SET_FOREACH(p, arg_facilities, it) {
char match[STRLEN("SYSLOG_FACILITY=") + DECIMAL_STR_MAX(int)];
xsprintf(match, "SYSLOG_FACILITY=%d", PTR_TO_INT(p));
r = sd_journal_add_match(j, match, strlen(match));
if (r < 0)
return log_error_errno(r, "Failed to add match: %m");
}
return 0;
}
static int add_syslog_identifier(sd_journal *j) {
int r;
char **i;
@ -2314,6 +2387,10 @@ int main(int argc, char *argv[]) {
if (r < 0)
goto finish;
r = add_facilities(j);
if (r < 0)
goto finish;
r = add_matches(j, argv + optind);
if (r < 0)
goto finish;
@ -2681,6 +2758,7 @@ finish:
strv_free(arg_file);
set_free(arg_facilities);
strv_free(arg_syslog_identifier);
strv_free(arg_system_units);
strv_free(arg_user_units);