# bash completion for quota-tools -*- shell-script -*- _user_or_group() { local i # complete on groups if -g was given for (( i=1; i < cword; i++ )); do if [[ "${words[i]}" == -@(g|-group) ]]; then COMPREPLY=( $(compgen -g -- "$cur") ) return fi done # otherwise complete on users COMPREPLY=( $(compgen -u -- "$cur") ) } _quota_parse_help() { local opts=$(_parse_help "$1") COMPREPLY=( $(compgen -W '${opts:-$(_parse_usage "$1")}' -- "$cur") ) [[ $COMPREPLY == *= ]] && compopt -o nospace } _quota_formats() { COMPREPLY=( $(compgen -W 'vfsold vfsv0 rpc xfs' -- "$cur") ) } _filesystems() { # Only list filesystems starting with "/", otherwise we also get #+ "binfmt_misc", "proc", "tmpfs", ... COMPREPLY=( $(compgen -W "$(awk '/^\// {print $1}' /etc/mtab)" \ -- "$cur") ) } _quota() { local cur prev words cword split _init_completion -s || return case $prev in -F|--format) _quota_formats return ;; -h|--help|-V|--version) return ;; esac $split && return if [[ "$cur" == -* ]]; then _quota_parse_help "$1" else _user_or_group fi } && complete -F _quota -o default quota _setquota() { local cur prev words cword split _init_completion -s || return case $prev in -F|--format) _quota_formats return ;; -p|--prototype) _user_or_group return ;; -h|--help|-V|--version) return ;; esac $split && return if [[ "$cur" == -* ]]; then _quota_parse_help "$1" else local args _count_args case $args in 1) _user_or_group ;; 2) _filesystems ;; esac fi } && complete -F _setquota -o default setquota _edquota() { local cur prev words cword split _init_completion -s || return case $prev in -F|--format) _quota_formats return ;; -f|--filesystem) _filesystems return ;; -p|--prototype) _user_or_group return ;; -h|--help|-V|--version) return ;; esac $split && return if [[ "$cur" == -* ]]; then _quota_parse_help "$1" else _user_or_group fi } && complete -F _edquota -o default edquota _quotacheck() { local cur prev words cword split _init_completion -s || return case $prev in -F|--format) _quota_formats return ;; -h|--help|-V|--version) return ;; esac $split && return if [[ "$cur" == -* ]]; then _quota_parse_help "$1" else _filesystems fi } && complete -F _quotacheck -o default quotacheck repquota _quotaon() { local cur prev words cword split _init_completion -s || return case $prev in -F|--format) _quota_formats return ;; -x|--xfs-command) COMPREPLY=( $(compgen -W 'delete enforce' -- "$cur") ) return ;; -h|--help|-V|--version) return ;; esac $split && return if [[ "$cur" == -* ]]; then _quota_parse_help "$1" else _filesystems fi } && complete -F _quotaon -o default quotaon quotaoff # ex: filetype=sh