]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
bash-completion: add missing commands and options to systemd-dissect 29308/head
authorAntonio Alvarez Feijoo <antonio.feijoo@suse.com>
Mon, 25 Sep 2023 14:46:11 +0000 (16:46 +0200)
committerAntonio Alvarez Feijoo <antonio.feijoo@suse.com>
Mon, 25 Sep 2023 14:46:11 +0000 (16:46 +0200)
shell-completion/bash/systemd-dissect

index 275ef6ba8d604e68c4cde062eb49480d3c284b26..4bb203a2f8f54c01cc3f9d5198cc445f3fa0913a 100644 (file)
@@ -28,38 +28,59 @@ _systemd_dissect() {
     local cur=${COMP_WORDS[COMP_CWORD]} prev_1=${COMP_WORDS[COMP_CWORD-1]} prev_2=${COMP_WORDS[COMP_CWORD-2]} words cword
     local -A OPTS=(
         [STANDALONE]='-h --help --version
+                     --discover
                      --no-pager
                      --no-legend
                      -r --read-only
                      --mkdir
-                     --rmdir'
+                     --rmdir
+                     --in-memory'
         [ARG]='-m --mount -M
                -u --umount -U
                -l --list
+               --mtree
+               --with
                -x --copy-from
                -a --copy-to
+               --validate
                --fsck
                --growfs
                --discard
                --root-hash
                --root-hash-sig
                --verity-data
-               --json'
+               --image-policy
+               --json
+               --loop-ref
+               --mtree-hash'
     )
 
     _init_completion || return
 
+    if __contains_word "$prev_1" ${OPTS[STANDALONE]}; then
+        case $prev_1 in
+            -h|--help|--version|--discover)
+                return 0
+                ;;
+        esac
+    fi
+
+    if [[ "$cur" = -* ]]; then
+        COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "$cur") )
+        return 0
+    fi
+
     if __contains_word "$prev_1" ${OPTS[ARG]}; then
         case $prev_1 in
-            -l|--list|-m|--mount|-M|-x|--copy-from|-a|--copy-to|--verity-data)
+            -l|--list|--mtree|-m|--mount|-M|-x|--copy-from|-a|--copy-to|--verity-data|--validate|--with)
                 comps=$(compgen -A file -- "$cur")
                 compopt -o filenames
                 ;;
             -u|--umount|-U)
-                comps=$(compgen -A directory -- "$cur" )
+                comps=$(compgen -A directory -- "$cur")
                 compopt -o dirnames
                 ;;
-            --fsck|--growfs)
+            --fsck|--growfs|--mtree-hash)
                 comps='yes no'
                 ;;
             --discard)
@@ -80,11 +101,15 @@ _systemd_dissect() {
     if __contains_word "$prev_2" ${OPTS[ARG]}; then
         case $prev_2 in
             -m|--mount|-M)
-                comps=$(compgen -A directory -- "$cur" )
+                comps=$(compgen -A directory -- "$cur")
                 compopt -o dirnames
                 ;;
+            --with)
+                comps=$(compgen -A command -- "$cur")
+                compopt -o filenames
+                ;;
             *)
-                comps=$(compgen -A file -- "$cur" )
+                comps=$(compgen -A file -- "$cur")
                 compopt -o filenames
                 ;;
         esac
@@ -92,11 +117,6 @@ _systemd_dissect() {
         return 0
     fi
 
-    if [[ "$cur" = -* ]]; then
-        COMPREPLY=( $(compgen -W '${OPTS[*]}' -- "$cur") )
-        return 0
-    fi
-
     COMPREPLY=( $(compgen -A file -- "$cur") )
     compopt -o filenames
     return 0