diff --git a/man/udevadm.xml b/man/udevadm.xml
index 734e38cd05..1e2202aa66 100644
--- a/man/udevadm.xml
+++ b/man/udevadm.xml
@@ -780,6 +780,13 @@
+
+
+
+ Do not show summary.
+
+
+
diff --git a/shell-completion/bash/udevadm b/shell-completion/bash/udevadm
index 3c3c403153..2e2fe5a58e 100644
--- a/shell-completion/bash/udevadm
+++ b/shell-completion/bash/udevadm
@@ -64,7 +64,7 @@ _udevadm() {
[MONITOR_ARG]='-s --subsystem-match -t --tag-match'
[TEST]='-a --action -N --resolve-names'
[TEST_BUILTIN]='-a --action'
- [VERIFY]='-N --resolve-names --root'
+ [VERIFY]='-N --resolve-names --root --no-summary'
[WAIT]='-t --timeout --initialized=no --removed --settle'
[LOCK]='-t --timeout -d --device -b --backing -p --print'
)
diff --git a/shell-completion/zsh/_udevadm b/shell-completion/zsh/_udevadm
index e8414eef67..96fb59af89 100644
--- a/shell-completion/zsh/_udevadm
+++ b/shell-completion/zsh/_udevadm
@@ -109,6 +109,7 @@ _udevadm_verify(){
_arguments \
{-N+,--resolve-names=}'[When to resolve names.]:resolve:(early never)' \
'--root=[Operate on catalog hierarchy under specified directory]:directories:_directories' \
+ {--no-summary}'[Do not show summary.]' \
{-h,--help}'[Print help text.]' \
'*::files:_files'
}
diff --git a/src/udev/udevadm-verify.c b/src/udev/udevadm-verify.c
index 37c477da6a..58d35fef13 100644
--- a/src/udev/udevadm-verify.c
+++ b/src/udev/udevadm-verify.c
@@ -20,6 +20,7 @@
static ResolveNameTiming arg_resolve_name_timing = RESOLVE_NAME_EARLY;
static char *arg_root = NULL;
+static bool arg_summary = true;
STATIC_DESTRUCTOR_REGISTER(arg_root, freep);
@@ -37,6 +38,7 @@ static int help(void) {
" -V --version Show package version\n"
" -N --resolve-names=early|never When to resolve names\n"
" --root=PATH Operate on an alternate filesystem root\n"
+ " --no-summary Do not show summary\n"
"\nSee the %s for details.\n",
program_invocation_short_name,
ansi_highlight(),
@@ -49,12 +51,14 @@ static int help(void) {
static int parse_argv(int argc, char *argv[]) {
enum {
ARG_ROOT = 0x100,
+ ARG_NO_SUMMARY,
};
static const struct option options[] = {
- { "help", no_argument, NULL, 'h' },
- { "version", no_argument, NULL, 'V' },
- { "resolve-names", required_argument, NULL, 'N' },
- { "root", required_argument, NULL, ARG_ROOT },
+ { "help", no_argument, NULL, 'h' },
+ { "version", no_argument, NULL, 'V' },
+ { "resolve-names", required_argument, NULL, 'N' },
+ { "root", required_argument, NULL, ARG_ROOT },
+ { "no-summary", no_argument, NULL, ARG_NO_SUMMARY },
{}
};
@@ -87,6 +91,9 @@ static int parse_argv(int argc, char *argv[]) {
if (r < 0)
return r;
break;
+ case ARG_NO_SUMMARY:
+ arg_summary = false;
+ break;
case '?':
return -EINVAL;
@@ -172,16 +179,17 @@ static int verify_rules(UdevRules *rules, char **files) {
r = verify_rules_filelist(rules, files, &fail_count, &success_count, /* walk_dirs */ true);
- printf("\n%s%zu udev rules files have been checked.%s\n"
- " Success: %zu\n"
- "%s Fail: %zu%s\n",
- ansi_highlight(),
- fail_count + success_count,
- ansi_normal(),
- success_count,
- fail_count > 0 ? ansi_highlight_red() : "",
- fail_count,
- fail_count > 0 ? ansi_normal() : "");
+ if (arg_summary)
+ printf("\n%s%zu udev rules files have been checked.%s\n"
+ " Success: %zu\n"
+ "%s Fail: %zu%s\n",
+ ansi_highlight(),
+ fail_count + success_count,
+ ansi_normal(),
+ success_count,
+ fail_count > 0 ? ansi_highlight_red() : "",
+ fail_count,
+ fail_count > 0 ? ansi_normal() : "");
return r;
}
diff --git a/test/units/testsuite-17.11.sh b/test/units/testsuite-17.11.sh
index d70a93b74f..56e9ac24ac 100755
--- a/test/units/testsuite-17.11.sh
+++ b/test/units/testsuite-17.11.sh
@@ -134,6 +134,8 @@ rm "${rules_dir}/loop.rules"
# Empty rules.
touch "${rules_dir}/empty.rules"
assert_0 --root="${workdir}"
+: >"${exo}"
+assert_0 --root="${workdir}" --no-summary
# Directory with a single *.rules file.
cp "${workdir}/default_output_1_success" "${exo}"