]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
systemd-analyze: Add tab complete logic for plot
authorjoshuazivkovic <joshua.zivkovic@codethink.co.uk>
Wed, 14 Dec 2022 12:31:59 +0000 (12:31 +0000)
committerjoshuazivkovic <joshua.zivkovic@codethink.co.uk>
Wed, 18 Jan 2023 14:33:08 +0000 (14:33 +0000)
shell-completion/bash/systemd-analyze
shell-completion/zsh/_systemd-analyze

index b1baec997803c2a3bc5471cfbc879c0b2188c334..5edba7bf58c51983bfb362c3553cf8d2fa181443 100644 (file)
@@ -62,7 +62,7 @@ _systemd_analyze() {
     )
 
     local -A VERBS=(
-        [STANDALONE]='time blame plot unit-paths exit-status calendar timestamp timespan'
+        [STANDALONE]='time blame unit-paths exit-status calendar timestamp timespan'
         [CRITICAL_CHAIN]='critical-chain'
         [DOT]='dot'
         [DUMP]='dump'
@@ -72,6 +72,7 @@ _systemd_analyze() {
         [SECURITY]='security'
         [CONDITION]='condition'
         [INSPECT_ELF]='inspect-elf'
+        [PLOT]='plot'
     )
 
     local CONFIGS='systemd/bootchart.conf systemd/coredump.conf systemd/journald.conf
@@ -195,6 +196,11 @@ _systemd_analyze() {
             comps=$( compgen -A file -- "$cur" )
             compopt -o filenames
         fi
+
+    elif __contains_word "$verb" ${VERBS[PLOT]}; then
+        if [[ $cur = -* ]]; then
+            comps='--help --version --system --user --global --no-pager --json=off --json=pretty --json=short --table --no-legend'
+        fi
     fi
 
     COMPREPLY=( $(compgen -W '$comps' -- "$cur") )
index e305995cef7314bca2f0381c2684821d5629411f..2e046ea1119d71df72bcbb3c86f027381302f4e1 100644 (file)
         _describe -t groups 'file system groups' _groups || compadd "$@"
     }
 
+(( $+functions[_systemd-analyze_plot] )) ||
+    _systemd-analyze_plot() {
+        local -a _options
+        _options=( '--json=off' '--json=pretty' '--json=short' '--table' '--no-legend' )
+        _describe 'plot options' _options
+    }
+
 (( $+functions[_systemd-analyze_commands] )) ||
     _systemd-analyze_commands(){
         local -a _systemd_analyze_cmds
@@ -48,7 +55,8 @@
             'time:Print time spent in the kernel before reaching userspace'
             'blame:Print list of running units ordered by time to init'
             'critical-chain:Print a tree of the time critical chain of units'
-            'plot:Output SVG graphic showing service initialization'
+            'plot:Output SVG graphic showing service initialization, or raw time data in
+JSON or table format'
             'dot:Dump dependency graph (in dot(1) format)'
             'dump:Dump server status'
             'cat-config:Cat systemd config files'
@@ -97,9 +105,11 @@ _arguments \
     '--offline=[Perform a security review of the specified unit files]:BOOL:(yes no)' \
     '--threshold=[Set a value to compare the overall security exposure level with]: NUMBER' \
     '--security-policy=[Use customized requirements to compare unit files against]: PATH' \
-    '--json=[Generate a JSON output of the security analysis table]:MODE:(pretty short off)' \
+    "--json=[Generate a JSON output of the security analysis table or plot's raw time data]:MODE:(pretty short off)" \
+    "--table=[Generate a table of plot's raw time data]" \
     '--profile=[Include the specified profile in the security review of units]: PATH' \
     '--no-pager[Do not pipe output into a pager]' \
+    "--no-legend[Do not show the headers and footers for plot's raw time data formats]" \
     '--man=[Do (not) check for existence of man pages]:BOOL:(yes no)' \
     '--generators=[Do (not) run unit generators]:BOOL:(yes no)' \
     '--order[When generating graph for dot, show only order]' \