From fd4b8484362556a4a671bd083c8caae79d8ddf6e Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 31 May 2024 12:19:22 +0200 Subject: [PATCH 1/2] analyze: add section underlining to --help text Do this like we usually do these days. --- src/analyze/analyze.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/analyze/analyze.c b/src/analyze/analyze.c index 150379ca24..8ffacc3d86 100644 --- a/src/analyze/analyze.c +++ b/src/analyze/analyze.c @@ -210,9 +210,9 @@ static int help(int argc, char *argv[], void *userdata) { if (r < 0) return log_oom(); - printf("%s [OPTIONS...] COMMAND ...\n\n" - "%sProfile systemd, show unit dependencies, check unit files.%s\n" - "\nCommands:\n" + printf("%1$s [OPTIONS...] COMMAND ...\n\n" + "%5$sProfile systemd, show unit dependencies, check unit files.%6$s\n" + "\n%3$sCommands:%4$s\n" " [time] Print time required to boot the machine\n" " blame Print list of running units ordered by\n" " time to init\n" @@ -220,7 +220,7 @@ static int help(int argc, char *argv[], void *userdata) { " of units\n" " plot Output SVG graphic showing service\n" " initialization\n" - " dot [UNIT...] Output dependency graph in %s format\n" + " dot [UNIT...] Output dependency graph in %7$s format\n" " dump [PATTERN...] Output state serialization of service\n" " manager\n" " cat-config NAME|PATH... Show configuration file and drop-ins\n" @@ -247,7 +247,7 @@ static int help(int argc, char *argv[], void *userdata) { " pcrs [PCR...] Show TPM2 PCRs and their names\n" " srk [>FILE] Write TPM2 SRK (to FILE)\n" " smbios11 List strings passed via SMBIOS Type #11\n" - "\nOptions:\n" + "\n%3$sOptions:%4$s\n" " --recursive-errors=MODE Control which units are verified\n" " --offline=BOOL Perform a security review on unit file(s)\n" " --threshold=N Exit with a non-zero status when overall\n" @@ -291,12 +291,14 @@ static int help(int argc, char *argv[], void *userdata) { " --root=PATH Operate on an alternate filesystem root\n" " --image=PATH Operate on disk image as filesystem root\n" " --image-policy=POLICY Specify disk image dissection policy\n" - "\nSee the %s for details.\n", + "\nSee the %2$s for details.\n", program_invocation_short_name, + link, + ansi_underline(), + ansi_normal(), ansi_highlight(), ansi_normal(), - dot_link, - link); + dot_link); /* When updating this list, including descriptions, apply changes to * shell-completion/bash/systemd-analyze and shell-completion/zsh/_systemd-analyze too. */ From 645a3fa9e83bf5cdb73375961354e7f218af3886 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 31 May 2024 12:42:02 +0200 Subject: [PATCH 2/2] analyze: add some roughly useful subsections to --help text It's a long long list of verbs we support now, let's make it easier to digest, like we did in systemctl --help and elsewhere. --- src/analyze/analyze.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/analyze/analyze.c b/src/analyze/analyze.c index 8ffacc3d86..1e199e30b7 100644 --- a/src/analyze/analyze.c +++ b/src/analyze/analyze.c @@ -212,41 +212,49 @@ static int help(int argc, char *argv[], void *userdata) { printf("%1$s [OPTIONS...] COMMAND ...\n\n" "%5$sProfile systemd, show unit dependencies, check unit files.%6$s\n" - "\n%3$sCommands:%4$s\n" + "\n%3$sBoot Analysis:%4$s\n" " [time] Print time required to boot the machine\n" " blame Print list of running units ordered by\n" " time to init\n" " critical-chain [UNIT...] Print a tree of the time critical chain\n" " of units\n" + "\n%3$sDependency Analysis:%4$s\n" " plot Output SVG graphic showing service\n" " initialization\n" " dot [UNIT...] Output dependency graph in %7$s format\n" " dump [PATTERN...] Output state serialization of service\n" " manager\n" + "\n%3$sConfiguration Files and Search Paths:%4$s\n" " cat-config NAME|PATH... Show configuration file and drop-ins\n" " unit-files List files and symlinks for units\n" " unit-paths List load directories for units\n" + "\n%3$sEnumerate OS Concepts:%4$s\n" " exit-status [STATUS...] List exit status definitions\n" " capability [CAP...] List capability definitions\n" " syscall-filter [NAME...] List syscalls in seccomp filters\n" " filesystems [NAME...] List known filesystems\n" " architectures [NAME...] List known architectures\n" + " smbios11 List strings passed via SMBIOS Type #11\n" + "\n%3$sExpression Evaluation:%4$s\n" " condition CONDITION... Evaluate conditions and asserts\n" " compare-versions VERSION1 [OP] VERSION2\n" " Compare two version strings\n" - " verify FILE... Check unit files for correctness\n" + " image-policy POLICY... Analyze image policy string\n" + "\n%3$sClock & Time:%4$s\n" " calendar SPEC... Validate repetitive calendar time\n" " events\n" " timestamp TIMESTAMP... Validate a timestamp\n" " timespan SPAN... Validate a time span\n" + "\n%3$sUnit & Service Analysis:%4$s\n" + " verify FILE... Check unit files for correctness\n" " security [UNIT...] Analyze security of unit\n" - " inspect-elf FILE... Parse and print ELF package metadata\n" - " malloc [D-BUS SERVICE...] Dump malloc stats of a D-Bus service\n" " fdstore SERVICE... Show file descriptor store contents of service\n" - " image-policy POLICY... Analyze image policy string\n" + " malloc [D-BUS SERVICE...] Dump malloc stats of a D-Bus service\n" + "\n%3$sExecutable Analysis:%4$s\n" + " inspect-elf FILE... Parse and print ELF package metadata\n" + "\n%3$sTPM Operations:%4$s\n" " pcrs [PCR...] Show TPM2 PCRs and their names\n" " srk [>FILE] Write TPM2 SRK (to FILE)\n" - " smbios11 List strings passed via SMBIOS Type #11\n" "\n%3$sOptions:%4$s\n" " --recursive-errors=MODE Control which units are verified\n" " --offline=BOOL Perform a security review on unit file(s)\n"