chiark / gitweb /
journalctl: add option to forgo ellipsization
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sat, 17 Nov 2012 14:27:59 +0000 (15:27 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sat, 17 Nov 2012 14:32:04 +0000 (15:32 +0100)
Sometimes it is better to see messages in full, and the existing
set of options didn't allow this easily. E.g. now

  journalctl -f --full

will behave like

  tail -f /var/log/messages

of yore.

Long option only for now, since small letters are becoming
scarce, and this doesn't feel like a capital-letter-option.
'-u' would be nice, and the above command would be spelled

  journalctl -fu

man/journalctl.xml
shell-completion/systemd-bash-completion.sh
shell-completion/systemd-zsh-completion.zsh
src/journal/journalctl.c

index 8b26cd926033d74939f5cfb40e91c2fbb876794b..471c9452ca5e25cf2b827097642234abdf7347dd 100644 (file)
                                 pager.</para></listitem>
                         </varlistentry>
 
+                        <varlistentry>
+                                <term><option>--full</option></term>
+
+                                <listitem><para>Show all (printable) fields in
+                                full.</para></listitem>
+                        </varlistentry>
+
                         <varlistentry>
                                 <term><option>--all</option></term>
                                 <term><option>-a</option></term>
index 2d425c0aab39e7f5e0f735148ba483c713745237..c1b851c24e26880dfbfd7859c83cc3f3cd826579 100644 (file)
@@ -294,7 +294,8 @@ __journal_fields=(MESSAGE{,_ID} PRIORITY CODE_{FILE,LINE,FUNC}
 _journalctl() {
         local field_vals= cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]}
         local -A OPTS=(
-                [STANDALONE]='-a --all -b --this-boot --disk-usage -f --follow --header
+                [STANDALONE]='-a --all --full
+                              -b --this-boot --disk-usage -f --follow --header
                               -h --help -l --local --new-id128 -m --merge --no-pager
                               --no-tail -q --quiet --setup-keys --this-boot --verify
                               --version --list-catalog --update-catalog'
index 5f75bc31b12c7e7634786d706c605fbc78916c90..7799bf68dad99f934cf4f45941a3500596df98e8 100644 (file)
@@ -77,6 +77,7 @@ _ctls()
                 {-n,--lines=}'[Number of journal entries to show]:integer' \
                 '--no-tail[Show all lines, even in follow mode]' \
                 {-o,--output=}'[Change journal output mode]:output modes:_outputmodes' \
+                {--full}'[Show long fields in full]' \
                 {-a,--all}'[Show all fields, including long and unprintable]' \
                 {-q,--quiet}"[Don't show privilege warning]" \
                 '--no-pager[Do not pipe output into a pager]' \
index 8f452dd92db77e6e0adca6c1f99b75891398b542..4d46beb3fe3cf0f71e6add9c283de41c95ce88a5 100644 (file)
@@ -57,6 +57,7 @@
 
 static OutputMode arg_output = OUTPUT_SHORT;
 static bool arg_follow = false;
+static bool arg_full = false;
 static bool arg_all = false;
 static bool arg_no_pager = false;
 static unsigned arg_lines = 0;
@@ -105,6 +106,7 @@ static int help(void) {
                "  -o --output=STRING     Change journal output mode (short, short-monotonic,\n"
                "                         verbose, export, json, json-pretty, json-sse, cat)\n"
                "  -x --catalog           Add message explanations where available\n"
+               "     --full              Do not ellipsize fields\n"
                "  -a --all               Show all fields, including long and unprintable\n"
                "  -q --quiet             Don't show privilege warning\n"
                "     --no-pager          Do not pipe output into a pager\n"
@@ -140,6 +142,7 @@ static int parse_argv(int argc, char *argv[]) {
                 ARG_NO_TAIL,
                 ARG_NEW_ID128,
                 ARG_HEADER,
+                ARG_FULL,
                 ARG_SETUP_KEYS,
                 ARG_INTERVAL,
                 ARG_VERIFY,
@@ -158,6 +161,7 @@ static int parse_argv(int argc, char *argv[]) {
                 { "follow",       no_argument,       NULL, 'f'              },
                 { "output",       required_argument, NULL, 'o'              },
                 { "all",          no_argument,       NULL, 'a'              },
+                { "full",         no_argument,       NULL, ARG_FULL         },
                 { "lines",        optional_argument, NULL, 'n'              },
                 { "no-tail",      no_argument,       NULL, ARG_NO_TAIL      },
                 { "new-id128",    no_argument,       NULL, ARG_NEW_ID128    },
@@ -226,6 +230,10 @@ static int parse_argv(int argc, char *argv[]) {
 
                         break;
 
+                case ARG_FULL:
+                        arg_full = true;
+                        break;
+
                 case 'a':
                         arg_all = true;
                         break;
@@ -1065,7 +1073,7 @@ int main(int argc, char *argv[]) {
 
                         flags =
                                 arg_all * OUTPUT_SHOW_ALL |
-                                (!on_tty() || pager_have()) * OUTPUT_FULL_WIDTH |
+                                (arg_full || !on_tty() || pager_have()) * OUTPUT_FULL_WIDTH |
                                 on_tty() * OUTPUT_COLOR |
                                 arg_catalog * OUTPUT_CATALOG;