]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
rfkill: add bash-completion file
authorSami Kerola <kerolasa@iki.fi>
Sun, 25 Jun 2017 12:21:31 +0000 (13:21 +0100)
committerSami Kerola <kerolasa@iki.fi>
Wed, 30 Aug 2017 19:32:49 +0000 (20:32 +0100)
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
bash-completion/Makemodule.am
bash-completion/rfkill [new file with mode: 0644]

index a4cd4fc366f94a3bfcec163337563229ee1b77c8..61f298a721ff14ee9aedf5e3d82691b92386443f 100644 (file)
@@ -282,6 +282,9 @@ endif
 if BUILD_LDATTACH
 dist_bashcompletion_DATA += bash-completion/ldattach
 endif
+if BUILD_RFKILL
+dist_bashcompletion_DATA += bash-completion/rfkill
+endif
 if BUILD_RTCWAKE
 dist_bashcompletion_DATA += bash-completion/rtcwake
 endif
diff --git a/bash-completion/rfkill b/bash-completion/rfkill
new file mode 100644 (file)
index 0000000..2d561e9
--- /dev/null
@@ -0,0 +1,47 @@
+_rfkill_module()
+{
+       local cur prev OPTS
+       COMPREPLY=()
+       cur="${COMP_WORDS[COMP_CWORD]}"
+       prev="${COMP_WORDS[COMP_CWORD-1]}"
+       case $prev in
+               'list'|'block'|'unblock')
+                       local targets
+                       targets="$(rfkill --output=id,type --noheadings list)"
+                       COMPREPLY=( $(compgen -W "all $targets" -- $cur) )
+                       return 0;
+                       ;;
+               '-o'|'--output')
+                       local prefix realcur OUTPUT
+                       realcur="${cur##*,}"
+                       prefix="${cur%$realcur}"
+                       for WORD in "DEVICE TYPE ID SOFT HARD"; do
+                               if ! [[ $prefix == *"$WORD"* ]]; then
+                                       OUTPUT="$WORD ${OUTPUT:-""}"
+                               fi
+                       done
+                       compopt -o nospace
+                       COMPREPLY=( $(compgen -P "$prefix" -W "$OUTPUT" -S ',' -- $realcur) )
+                       return 0
+                       ;;
+               '-h'|'--help'|'-V'|'--version')
+                       return 0
+                       ;;
+       esac
+       OPTS="
+               event
+               list
+               block
+               unblock
+               --json
+               --noheadings
+               --output
+               --raw
+               --help
+               --version
+       "
+       COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
+       return 0
+
+}
+complete -F _rfkill_module rfkill