diff --git a/to_review/quota-tools b/to_review/quota-tools new file mode 100644 index 00000000..e9a61ea8 --- /dev/null +++ b/to_review/quota-tools @@ -0,0 +1,211 @@ +# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*- +# ex: ts=8 sw=8 noet filetype=sh +# +# bash completion for quota-tools + +have quota && { +_user_or_group() +{ + local i + + # complete on groups if -g was given + for (( i=1; i < COMP_CWORD; i++ )); do + if [[ "${COMP_WORDS[i]}" == -g ]]; then + COMPREPLY=( $( compgen -g -- $cur ) ) + return 0 + fi + done + + # otherwise complete on users + COMPREPLY=( $( compgen -u -- $cur ) ) +} + +_quota_formats() +{ + COMPREPLY=( $( compgen -W 'vfsold vfsv0 rpc xfs' -- $cur ) ) +} + +_filesystems() +{ + COMPREPLY=( $( compgen -W '$(awk '!/^none/ {print $1}' /etc/mtab)' \ + -- $cur ) ) +} + + +_quota() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case $prev in + -F) + _quota_formats + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-F -g -u -v -s -i -l -q -Q' -- $cur ) ) + else + _user_or_group + fi +} +complete -F _quota quota + +_setquota() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case $prev in + -F) + _quota_formats + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-r -F -g -u -p -b -t -T -a' -- $cur ) ) + else + _count_args + + case $args in + 1) + _user_or_group + ;; + 2) + _filesystems + ;; + esac + + fi +} +complete -F _setquota setquota + +_edquota() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case $prev in + -F) + _quota_formats + return 0 + ;; + -f) + _filesystems + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-r -g -u -p -F -f -t -T' -- $cur ) ) + else + _user_or_group + fi +} +complete -F _edquota edquota + +_quotacheck() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case $prev in + -F) + _quota_formats + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-g -u -b -c -f -i -n -v -d -M -m -R \ + -F -a' -- $cur ) ) + else + _filesystems + fi +} +complete -F _quotacheck quotacheck + +_repquota() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case $prev in + -F) + _quota_formats + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-v -s -i -u -g -c -C -t -n -F' -- \ + $cur ) ) + else + _filesystems + fi +} +complete -F _repquota repquota + +_quotaon() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case $prev in + -F) + _quota_formats + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-a -v -u -g -f -p -F' -- $cur ) ) + else + _filesystems + fi +} +complete -F _quotaon quotaon + +_quotaoff() +{ + local cur prev + + COMPREPLY=() + cur=`_get_cword` + prev=${COMP_WORDS[COMP_CWORD-1]} + + case $prev in + -F) + _quota_formats + return 0 + ;; + esac + + if [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-a -v -u -g -p -x' -- $cur ) ) + else + _filesystems + fi +} +complete -F _quotaoff quotaoff +}