dcavalca / rpms / systemd

Forked from rpms/systemd 3 months ago
Clone
Blob Blame History Raw
From 1ec5be9a85b46c697fc87405038427eaf9bebe1b Mon Sep 17 00:00:00 2001
From: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
Date: Mon, 3 Mar 2014 22:01:42 +0100
Subject: [PATCH] update bash completion for systemd-analyze

(cherry picked from commit 64ae7f1864d54f38d62e258322a7ea9756c7284b)
---
 shell-completion/bash/systemd-analyze | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/shell-completion/bash/systemd-analyze b/shell-completion/bash/systemd-analyze
index 6afcd96..5575beb 100644
--- a/shell-completion/bash/systemd-analyze
+++ b/shell-completion/bash/systemd-analyze
@@ -25,10 +25,19 @@ __contains_word () {
         done
 }
 
+__get_machines() {
+        local a b
+        machinectl list --no-legend --no-pager | { while read a b; do echo " $a"; done; };
+}
+
 _systemd_analyze() {
         local i verb comps
         local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]}
-        local OPTS='--help --version --system --user --from-pattern --to-pattern --order --require'
+
+        local -A OPTS=(
+               [STANDALONE]='--help --version --system --user --from-pattern --to-pattern --order --require --no-pager'
+                      [ARG]='-H --host -M --machine'
+        )
 
         local -A VERBS=(
                 [STANDALONE]='time blame plot dump'
@@ -47,6 +56,19 @@ _systemd_analyze() {
                 fi
         done
 
+        if __contains_word "$prev" ${OPTS[ARG]}; then
+                case $prev in
+                        --host|-H)
+                                comps=$(compgen -A hostname)
+                        ;;
+                        --machine|-M)
+                                comps=$( __get_machines )
+                        ;;
+                esac
+                COMPREPLY=( $(compgen -W '$comps' -- "$cur") )
+                return 0
+        fi
+
         if [[ -z $verb  && $cur = -* ]]; then
                 COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "$cur") )
                 return 0