# bash completion for mdadmhave mdadm &&{_mdadm_raid_level(){local modefor (( i=1; i < COMP_CWORD; i++ )); docase ${COMP_WORDS[i]} in-C|--create)mode=createbreak;;-B|--build)mode=buildbreak;;esacdonecase $mode increate)COMPREPLY=( $( compgen -W 'linear raid0 0 stripe raid1 1 mirror \raid4 4 raid5 5 raid6 6 raid10 10 multipath mp faulty' \-- "$cur" ) );;build)COMPREPLY=( $( compgen -W 'linear stripe raid0 0 raid1 multipath \mp faulty' -- "$cur" ) );;esac}_mdadm_raid_layout(){local levelfor (( i=1; i < COMP_CWORD; i++ )); doif [[ "${COMP_WORDS[i]}" == -@(l|-level) ]]; thenlevel=${COMP_WORDS[i+1]}breakfidonecase $level inraid5)COMPREPLY=( $( compgen -W 'left-asymmetric left-symmetric \right-asymmetric right-symmetric la ra ls rs' -- "$cur" ) );;raid10)COMPREPLY=( $( compgen -W 'n o p' -- "$cur" ) );;faulty)COMPREPLY=( $( compgen -W 'write-transient wt read-transient rt \write-persistent wp read-persistent rp write-all read-fixable \rf clear flush none' -- $cur ) );;esac}_mdadm_auto_flag(){COMPREPLY=( $( compgen -W 'no yes md mdp part p' -- "$cur" ) )}_mdadm_update_flag(){COMPREPLY=( $( compgen -W 'sparc2.2 summaries uuid name homehost resync \byteorder super-minor' -- "$cur" ) )}_mdadm(){local cur prev mode options split=falseCOMPREPLY=()_get_comp_words_by_ref cur prev_split_longopt && split=truecase $prev in-c|--config|-b|--bitmap|--backup-file)_filedirreturn 0;;-l|--level)_mdadm_raid_levelreturn 0;;-p|--layout|--parity)_mdadm_raid_layoutreturn 0;;-a|--auto)_mdadm_auto_flagreturn 0;;-U|--update)_mdadm_update_flagreturn 0;;esac$split && return 0options='--help --help-options --version --verbose --quiet \--brief --force --config --scan --metadata --homehost'if [[ "$cur" == -* ]]; thenif [[ $COMP_CWORD -eq 1 ]] ; thenCOMPREPLY=( $( compgen -W "$options --assemble --build \--create --monitor --grow" -- "$cur" ) )elsecase ${COMP_WORDS[COMP_CWORD-1]} in-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 --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 --mail --program \--alert --syslog --delay --daemonise \--pid-file --oneshot --test" -- "$cur" ) );;/dev/*|--add|--fail|--remove)COMPREPLY=( $( compgen -W "$options --add --re-add \--remove --fail --set-faulty" -- "$cur" ) );;*)COMPREPLY=( $( compgen -W "$options --query --detail \--examine --sparc2.2 --examine-bitmap --run \--stop --readonly --readwrite \--zero-superblock --test" -- "$cur" ) );;esacfielsecur=${cur:=/dev/}_filedirfi}complete -F _mdadm mdadm}# Local variables:# mode: shell-script# sh-basic-offset: 4# sh-indent-comment: t# indent-tabs-mode: nil# End:# ex: ts=4 sw=4 et filetype=sh