journal: add output mode that just prints simple messages without any decorations
This commit is contained in:
parent
f987397649
commit
d3f2bdbfee
|
@ -57,7 +57,8 @@ static int help(void) {
|
||||||
" -f --follow Follow journal\n"
|
" -f --follow Follow journal\n"
|
||||||
" -n --lines=INTEGER Journal entries to show\n"
|
" -n --lines=INTEGER Journal entries to show\n"
|
||||||
" --no-tail Show all lines, even in follow mode\n"
|
" --no-tail Show all lines, even in follow mode\n"
|
||||||
" -o --output=STRING Change journal output mode (short, short-monotonic, verbose, export, json)\n"
|
" -o --output=STRING Change journal output mode (short, short-monotonic,\n"
|
||||||
|
" verbose, export, json, cat)\n"
|
||||||
" --new-id128 Generate a new 128 Bit id\n",
|
" --new-id128 Generate a new 128 Bit id\n",
|
||||||
program_invocation_short_name);
|
program_invocation_short_name);
|
||||||
|
|
||||||
|
|
|
@ -488,12 +488,34 @@ static int output_json(sd_journal *j, unsigned line, bool show_all) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int output_cat(sd_journal *j, unsigned line, bool show_all) {
|
||||||
|
const void *data;
|
||||||
|
size_t l;
|
||||||
|
int r;
|
||||||
|
|
||||||
|
assert(j);
|
||||||
|
|
||||||
|
r = sd_journal_get_data(j, "MESSAGE", &data, &l);
|
||||||
|
if (r < 0) {
|
||||||
|
log_error("Failed to get data: %s", strerror(-r));
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
assert(l >= 8);
|
||||||
|
|
||||||
|
fwrite((const char*) data + 8, 1, l - 8, stdout);
|
||||||
|
putchar('\n');
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int (*output_funcs[_OUTPUT_MODE_MAX])(sd_journal*j, unsigned line, bool show_all) = {
|
static int (*output_funcs[_OUTPUT_MODE_MAX])(sd_journal*j, unsigned line, bool show_all) = {
|
||||||
[OUTPUT_SHORT] = output_short_realtime,
|
[OUTPUT_SHORT] = output_short_realtime,
|
||||||
[OUTPUT_SHORT_MONOTONIC] = output_short_monotonic,
|
[OUTPUT_SHORT_MONOTONIC] = output_short_monotonic,
|
||||||
[OUTPUT_VERBOSE] = output_verbose,
|
[OUTPUT_VERBOSE] = output_verbose,
|
||||||
[OUTPUT_EXPORT] = output_export,
|
[OUTPUT_EXPORT] = output_export,
|
||||||
[OUTPUT_JSON] = output_json
|
[OUTPUT_JSON] = output_json,
|
||||||
|
[OUTPUT_CAT] = output_cat
|
||||||
};
|
};
|
||||||
|
|
||||||
int output_journal(sd_journal *j, OutputMode mode, unsigned line, bool show_all) {
|
int output_journal(sd_journal *j, OutputMode mode, unsigned line, bool show_all) {
|
||||||
|
@ -636,7 +658,8 @@ static const char *const output_mode_table[_OUTPUT_MODE_MAX] = {
|
||||||
[OUTPUT_SHORT_MONOTONIC] = "short-monotonic",
|
[OUTPUT_SHORT_MONOTONIC] = "short-monotonic",
|
||||||
[OUTPUT_VERBOSE] = "verbose",
|
[OUTPUT_VERBOSE] = "verbose",
|
||||||
[OUTPUT_EXPORT] = "export",
|
[OUTPUT_EXPORT] = "export",
|
||||||
[OUTPUT_JSON] = "json"
|
[OUTPUT_JSON] = "json",
|
||||||
|
[OUTPUT_CAT] = "cat"
|
||||||
};
|
};
|
||||||
|
|
||||||
DEFINE_STRING_TABLE_LOOKUP(output_mode, OutputMode);
|
DEFINE_STRING_TABLE_LOOKUP(output_mode, OutputMode);
|
||||||
|
|
|
@ -34,6 +34,7 @@ typedef enum OutputMode {
|
||||||
OUTPUT_VERBOSE,
|
OUTPUT_VERBOSE,
|
||||||
OUTPUT_EXPORT,
|
OUTPUT_EXPORT,
|
||||||
OUTPUT_JSON,
|
OUTPUT_JSON,
|
||||||
|
OUTPUT_CAT,
|
||||||
_OUTPUT_MODE_MAX,
|
_OUTPUT_MODE_MAX,
|
||||||
_OUTPUT_MODE_INVALID = -1
|
_OUTPUT_MODE_INVALID = -1
|
||||||
} OutputMode;
|
} OutputMode;
|
||||||
|
|
|
@ -3979,7 +3979,8 @@ static int systemctl_help(void) {
|
||||||
" --runtime Enable unit files only temporarily until next reboot\n"
|
" --runtime Enable unit files only temporarily until next reboot\n"
|
||||||
" -n --lines=INTEGER Journal entries to show\n"
|
" -n --lines=INTEGER Journal entries to show\n"
|
||||||
" --follow Follow journal\n"
|
" --follow Follow journal\n"
|
||||||
" -o --output=STRING Change journal output mode (short, short-monotonic, verbose, export, json)\n\n"
|
" -o --output=STRING Change journal output mode (short, short-monotonic,\n"
|
||||||
|
" verbose, export, json, cat)\n\n"
|
||||||
"Unit Commands:\n"
|
"Unit Commands:\n"
|
||||||
" list-units List loaded units\n"
|
" list-units List loaded units\n"
|
||||||
" start [NAME...] Start (activate) one or more units\n"
|
" start [NAME...] Start (activate) one or more units\n"
|
||||||
|
|
Loading…
Reference in a new issue