From: Dmitry V. Levin Date: Tue, 16 May 2023 08:00:00 +0000 (+0000) Subject: udevadm-verify: introduce --no-summary option X-Git-Tag: v254-rc1~428 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9e36da1541f3ff204290547ce1da0a18b0df75b8;p=thirdparty%2Fsystemd.git udevadm-verify: introduce --no-summary option When udevadm verify is invoked by an analyzer tool like rpminspect to verify individual udev rules files, the summary just clutters the output, so provide an option to turn the summary off. --- diff --git a/man/udevadm.xml b/man/udevadm.xml index 734e38cd051..1e2202aa66d 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 3c3c403153b..2e2fe5a58e8 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 e8414eef679..96fb59af891 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 37c477da6a5..58d35fef133 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 d70a93b74f1..56e9ac24ac9 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}"