[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