From: Frantisek Sumsal Date: Wed, 15 May 2019 17:28:09 +0000 (+0200) Subject: journalctl: return a non-zero EC when --grep returns no matches X-Git-Tag: v243-rc1~426 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6cda6774bdd90f8496d38dcd75d9be8a12660577;p=thirdparty%2Fsystemd.git journalctl: return a non-zero EC when --grep returns no matches When journalctl is compiled with PCRE2 support, let's return a non-zero exit code when --grep is used and no match for given pattern is found. This should allow users to use journalctl --grep in scripts instead of piping journalctl into grep Fixes #8152 --- diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c index 88ee4ee35f6..91a21e407fc 100644 --- a/src/journal/journalctl.c +++ b/src/journal/journalctl.c @@ -2678,8 +2678,16 @@ finish: free(arg_verify_key); #if HAVE_PCRE2 - if (arg_compiled_pattern) + if (arg_compiled_pattern) { pcre2_code_free(arg_compiled_pattern); + + /* --grep was used, no error was thrown, but the pattern didn't + * match anything. Let's mimic grep's behavior here and return + * a non-zero exit code, so journalctl --grep can be used + * in scripts and such */ + if (r == 0 && n_shown == 0) + r = -ENOENT; + } #endif return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;