summaryrefslogtreecommitdiffstats
path: root/completions/quota
diff options
context:
space:
mode:
Diffstat (limited to 'completions/quota')
-rw-r--r--completions/quota191
1 files changed, 191 insertions, 0 deletions
diff --git a/completions/quota b/completions/quota
new file mode 100644
index 0000000..f5f9cc8
--- /dev/null
+++ b/completions/quota
@@ -0,0 +1,191 @@
+# 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