summaryrefslogtreecommitdiff
path: root/contrib/mdadm
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/mdadm')
-rw-r--r--contrib/mdadm107
1 files changed, 41 insertions, 66 deletions
diff --git a/contrib/mdadm b/contrib/mdadm
index 0847b61f..9cbaad7b 100644
--- a/contrib/mdadm
+++ b/contrib/mdadm
@@ -1,17 +1,18 @@
# bash completion for mdadm
-have mdadm && {
+have mdadm &&
+{
_mdadm_raid_level()
{
local mode
for (( i=1; i < COMP_CWORD; i++ )); do
case ${COMP_WORDS[i]} in
- -@(C|-create))
+ -C|--create)
mode=create
break
;;
- -@(B|-build))
+ -B|--build)
mode=build
break
;;
@@ -71,102 +72,76 @@ _mdadm_update_flag()
_mdadm()
{
- local cur prev mode options
+ local cur prev mode options split=false
COMPREPLY=()
- cur=`_get_cword`
- prev=${COMP_WORDS[COMP_CWORD-1]}
+ _get_comp_words_by_ref cur prev
+
+ _split_longopt && split=true
- # --name value style option
case $prev in
- -@(c|b))
+ -c|--config|-b|--bitmap|--backup-file)
_filedir
return 0
;;
- -l)
+ -l|--level)
_mdadm_raid_level
return 0
;;
- -p)
+ -p|--layout|--parity)
_mdadm_raid_layout
return 0
;;
- -a)
+ -a|--auto)
_mdadm_auto_flag
return 0
;;
- -U)
+ -U|--update)
_mdadm_update_flag
return 0
;;
esac
- # --name=value style option
- if [[ "$cur" == *=* ]]; then
- prev=${cur/=*/}
- cur=${cur/*=/}
- case "$prev" in
- --@(config|bitmap|backup-file))
- _filedir
- return 0
- ;;
- --level)
- _mdadm_raid_level
- return 0
- ;;
- --@(layout|parity))
- _mdadm_raid_layout
- return 0
- ;;
- --auto)
- _mdadm_auto_flag
- return 0
- ;;
- --update)
- _mdadm_update_flag
- return 0
- ;;
- esac
- fi
+ $split && return 0
- options='-h --help --help-options -V --version -v --verbose -q --quiet -b \
- --brief -f --force -c --config= -s --scan -e --metadata= --homehost='
+ options='--help --help-options --version --verbose --quiet \
+ --brief --force --config --scan --metadata --homehost'
if [[ "$cur" == -* ]]; then
if [[ $COMP_CWORD -eq 1 ]] ; then
- COMPREPLY=( $( compgen -W "$options -A --assemble -B --build -C \
- --create -F --follow --monitor -G --grow" -- "$cur" ) )
+ COMPREPLY=( $( compgen -W "$options --assemble --build \
+ --create --monitor --grow" -- "$cur" ) )
else
case ${COMP_WORDS[COMP_CWORD-1]} in
- -@(A|-assemble))
- COMPREPLY=( $( compgen -W "$options -u --uuid= -m \
- --super-minor= -N --name= -f --force -R --run \
- --no-degraded -a --auto -b --bitmap= --backup-file= \
- -U --update= --auto-update-homehost" -- "$cur" ) )
+ -A|--assemble)
+ COMPREPLY=( $( compgen -W "$options --uuid \
+ --super-minor --name --force --run \
+ --no-degraded --auto --bitmap --backup-file \
+ --update --auto-update-homehost" -- "$cur" ) )
;;
- -@(B|C|G|-build|-create|-grow))
- COMPREPLY=( $( compgen -W "$options -n --raid-devices= -x \
- --spare-devices= -z --size= -c --chunk= --rounding= -l \
- --level= -p --layout= --parity= -b --bitmap= \
- --bitmap-chunk= -W --write-mostly --write-behind= \
- --assume-clean --backup-file= -N --name= -R --run -f \
- --force -a --auto" -- "$cur" ) )
+ -B|-C|-G|--build|--create|--grow)
+ COMPREPLY=( $( compgen -W "$options --raid-devices \
+ --spare-devices --size --chunk --rounding \
+ --level --layout --parity --bitmap \
+ --bitmap-chunk --write-mostly --write-behind \
+ --assume-clean --backup-file --name --run \
+ --force --auto" -- "$cur" ) )
;;
- -@(F|-follow|-monitor))
- COMPREPLY=( $( compgen -W "$options -m --mail -p --program \
- --alert -y --syslog -d --delay -f --daemonise -i \
- --pid-file -1 --oneshot -t --test" -- "$cur" ) )
+ -F|--follow|--monitor)
+ COMPREPLY=( $( compgen -W "$options --mail --program \
+ --alert --syslog --delay --daemonise \
+ --pid-file --oneshot --test" -- "$cur" ) )
;;
- @(/dev/*|--add|--fail|--remove))
- COMPREPLY=( $( compgen -W "$options -a --add --re-add -r \
- --remove -f --fail --set-faulty" -- "$cur" ) )
+ /dev/*|--add|--fail|--remove)
+ COMPREPLY=( $( compgen -W "$options --add --re-add \
+ --remove --fail --set-faulty" -- "$cur" ) )
;;
*)
- COMPREPLY=( $( compgen -W "$options -Q --query -D --detail \
- -E --examine --sparc2.2 -X --examine-bitmap -R --run \
- -S --stop -o --readonly -w --readwrite \
- --zero-superblock -t --test" -- "$cur" ) )
+ COMPREPLY=( $( compgen -W "$options --query --detail \
+ --examine --sparc2.2 --examine-bitmap --run \
+ --stop --readonly --readwrite \
+ --zero-superblock --test" -- "$cur" ) )
;;
esac
fi