diff options
Diffstat (limited to 'contrib/mdadm')
-rw-r--r-- | contrib/mdadm | 107 |
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 |