[systemd-commits] 2 commits - Makefile.am shell-completion/bash

Thomas H.P. Andersen phomes at kemper.freedesktop.org
Mon Mar 3 13:18:47 PST 2014


 Makefile.am                               |    1 
 shell-completion/bash/systemd-analyze     |   24 +++++++++++++++++-
 shell-completion/bash/systemd-detect-virt |   40 ++++++++++++++++++++++++++++++
 3 files changed, 64 insertions(+), 1 deletion(-)

New commits:
commit 3bfe58cbd4a9b1d2520f425f95de718f3a583d39
Author: Thomas Hindoe Paaboel Andersen <phomes at gmail.com>
Date:   Mon Mar 3 22:16:04 2014 +0100

    add bash completion for systemd-detect-virt

diff --git a/Makefile.am b/Makefile.am
index 5a02d1e..59cde40 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -364,6 +364,7 @@ dist_bashcompletion_DATA = \
 	shell-completion/bash/systemd-cgls \
 	shell-completion/bash/systemd-cgtop \
 	shell-completion/bash/systemd-delta \
+	shell-completion/bash/systemd-detect-virt \
 	shell-completion/bash/systemd-nspawn \
 	shell-completion/bash/systemd-run \
 	shell-completion/bash/udevadm \
diff --git a/shell-completion/bash/systemd-detect-virt b/shell-completion/bash/systemd-detect-virt
new file mode 100644
index 0000000..df06c29
--- /dev/null
+++ b/shell-completion/bash/systemd-detect-virt
@@ -0,0 +1,40 @@
+# systemd-detect-virt(1) completion             -*- shell-script -*-
+#
+# This file is part of systemd.
+#
+# Copyright 2014 Thomas H.P. Andersen
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+#
+# systemd is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with systemd; If not, see <http://www.gnu.org/licenses/>.
+
+__contains_word() {
+        local w word=$1; shift
+        for w in "$@"; do
+                [[ $w = "$word" ]] && return
+        done
+}
+
+_systemd_detect_virt() {
+        local cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]}
+        local i verb comps
+
+        local -A OPTS=(
+               [STANDALONE]='-h --help --version -c --container -v --vm -q --quiet'
+        )
+
+        _init_completion || return
+
+        COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "$cur") )
+}
+
+complete -F _systemd_detect_virt systemd-detect-virt

commit 64ae7f1864d54f38d62e258322a7ea9756c7284b
Author: Thomas Hindoe Paaboel Andersen <phomes at gmail.com>
Date:   Mon Mar 3 22:01:42 2014 +0100

    update bash completion for systemd-analyze

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



More information about the systemd-commits mailing list