[systemd-commits] src/journal src/logs-show.c src/logs-show.h src/systemctl.c
Lennart Poettering
lennart at kemper.freedesktop.org
Thu Jan 12 17:58:56 PST 2012
src/journal/journalctl.c | 3 ++-
src/logs-show.c | 27 +++++++++++++++++++++++++--
src/logs-show.h | 1 +
src/systemctl.c | 3 ++-
4 files changed, 30 insertions(+), 4 deletions(-)
New commits:
commit d3f2bdbfee94a4cd124b66e610f4b926b749e192
Author: Lennart Poettering <lennart at poettering.net>
Date: Fri Jan 13 02:58:45 2012 +0100
journal: add output mode that just prints simple messages without any decorations
diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c
index b2ebc7a..4d98647 100644
--- a/src/journal/journalctl.c
+++ b/src/journal/journalctl.c
@@ -57,7 +57,8 @@ static int help(void) {
" -f --follow Follow journal\n"
" -n --lines=INTEGER Journal entries to show\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",
program_invocation_short_name);
diff --git a/src/logs-show.c b/src/logs-show.c
index 8d728a6..8d1c77e 100644
--- a/src/logs-show.c
+++ b/src/logs-show.c
@@ -488,12 +488,34 @@ static int output_json(sd_journal *j, unsigned line, bool show_all) {
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) = {
[OUTPUT_SHORT] = output_short_realtime,
[OUTPUT_SHORT_MONOTONIC] = output_short_monotonic,
[OUTPUT_VERBOSE] = output_verbose,
[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) {
@@ -636,7 +658,8 @@ static const char *const output_mode_table[_OUTPUT_MODE_MAX] = {
[OUTPUT_SHORT_MONOTONIC] = "short-monotonic",
[OUTPUT_VERBOSE] = "verbose",
[OUTPUT_EXPORT] = "export",
- [OUTPUT_JSON] = "json"
+ [OUTPUT_JSON] = "json",
+ [OUTPUT_CAT] = "cat"
};
DEFINE_STRING_TABLE_LOOKUP(output_mode, OutputMode);
diff --git a/src/logs-show.h b/src/logs-show.h
index 2158a44..abb82c8 100644
--- a/src/logs-show.h
+++ b/src/logs-show.h
@@ -34,6 +34,7 @@ typedef enum OutputMode {
OUTPUT_VERBOSE,
OUTPUT_EXPORT,
OUTPUT_JSON,
+ OUTPUT_CAT,
_OUTPUT_MODE_MAX,
_OUTPUT_MODE_INVALID = -1
} OutputMode;
diff --git a/src/systemctl.c b/src/systemctl.c
index dfdbd1d..b72fcbf 100644
--- a/src/systemctl.c
+++ b/src/systemctl.c
@@ -3979,7 +3979,8 @@ static int systemctl_help(void) {
" --runtime Enable unit files only temporarily until next reboot\n"
" -n --lines=INTEGER Journal entries to show\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"
" list-units List loaded units\n"
" start [NAME...] Start (activate) one or more units\n"
More information about the systemd-commits
mailing list