[Bash-completion-commits] [SCM] bash-completion branch, master, updated. 4ab475b64caca38f90d6675c0e0cf2fdac1de0f2

Ville Skyttä ville.skytta at iki.fi
Sun Apr 19 14:35:13 UTC 2009


The following commit has been merged in the master branch:
commit 4ab475b64caca38f90d6675c0e0cf2fdac1de0f2
Author: Ville Skyttä <ville.skytta at iki.fi>
Date:   Sun Apr 19 17:35:04 2009 +0300

    Add shadow(-utils) completions for review.

diff --git a/to_review/shadow b/to_review/shadow
new file mode 100644
index 0000000..717cbd3
--- /dev/null
+++ b/to_review/shadow
@@ -0,0 +1,499 @@
+# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*-
+# ex: ts=8 sw=8 noet filetype=sh
+#
+# bash completion for shadow utils
+
+# Note: the following should be removed from main bash_completion once this
+#       is reviewed: chage, groupdel, groupmod, newgrp, userdel, usermod
+
+have useradd &&
+_useradd()
+{
+	local cur prev split=false
+
+	COMPREPLY=()
+	cur=`_get_cword`
+	prev=${COMP_WORDS[COMP_CWORD-1]}
+
+	_split_longopt && split=true
+
+	# TODO: if -o/--non-unique is given, could complete on existing uids
+	#       with -u/--uid
+
+	case "$prev" in
+		-c|--comment|-h|--help|-e|--expiredate|-f|--inactive|-k|--key|-p|--password|-u|--uid|-Z|--selinux-user)
+			return 0
+			;;
+		-b|--base-dir|-d|--home|-k|--skel)
+			_filedir -d
+			return 0
+			;;
+		-g|--gid)
+			_gids
+			[ -n "$bash205" ] && \
+				COMPREPLY=( "${COMPREPLY[@]}" $( compgen -g ) )
+			COMPREPLY=( $( compgen -W '${COMPREPLY[@]}' -- $cur ) )
+			return 0
+			;;
+		-G|--groups)
+			[ -n "$bash205" ] && \
+				COMPREPLY=( $( compgen -g -- $cur ) )
+			return 0
+			;;
+		-s|--shell)
+			_shells
+			return 0
+			;;
+	esac
+
+	$split && return 0
+
+	if [[ "$cur" == -* ]]; then
+		COMREPLY=( $( compgen -W '-b --base-dir -c --comment -d --home \
+			-D --defaults -e --expiredate -f --inactive -g --gid \
+			-G --groups -h --help -k --skel -K --key -l -M \
+			-m --create-home -N --no-user-group -o --non-unique \
+			-p --password -r --system -s --shell -u --uid \
+			-U --user-group -Z --selinux-user' -- $cur ) )
+		return 0
+	fi
+} &&
+complete -F _useradd useradd
+
+have usermod &&
+_usermod()
+{
+	local cur prev split=false
+
+	COMPREPLY=()
+	cur=`_get_cword`
+	prev=${COMP_WORDS[COMP_CWORD-1]}
+
+	_split_longopt && split=true
+
+	# TODO: if -o/--non-unique is given, could complete on existing uids
+	#       with -u/--uid
+
+	case "$prev" in
+		-c|--comment|-d|--home|-e|--expiredate|-f|--inactive|-h|--help|-l|--login|-p|--password|-u|--uid|-Z|--selinux-user)
+			return 0
+			;;
+		-g|--gid)
+			_gids
+			[ -n "$bash205" ] && \
+				COMPREPLY=( "${COMPREPLY[@]}" $( compgen -g ) )
+			COMPREPLY=( $( compgen -W '${COMPREPLY[@]}' -- $cur ) )
+			return 0
+			;;
+		-G|--groups)
+			[ -n "$bash205" ] && \
+				COMPREPLY=( $( compgen -g -- $cur ) )
+			return 0
+			;;
+		-s|--shell)
+			_shells
+			return 0
+			;;
+	esac
+
+	$split && return 0
+
+	if [[ "$cur" == -* ]]; then
+		# TODO: -U/--unlock, -p/--password, -L/--lock mutually exclusive
+		COMPREPLY=( $( compgen -W '-a --append -c --comment -d --home \
+			-e --expiredate -f --inactive -g --gid -G --groups \
+			-h --help -l --login -L --lock -o --non-unique \
+			-p --password -s --shell -u --uid -U --unlock \
+			-Z --selinux-user' -- $cur ) )
+		return 0
+	fi
+
+	COMPREPLY=( $( compgen -u -- $cur ) )
+} &&
+complete -F _usermod usermod
+
+have userdel &&
+_userdel()
+{
+	local cur
+
+	COMPREPLY=()
+	cur=`_get_cword`
+
+	if [[ "$cur" == -* ]]; then
+		COMPREPLY=( $( compgen -W '-f --force -h --help -r --remove' \
+			-- $cur ) )
+		return 0
+	fi
+
+	COMPREPLY=( $( compgen -u -- $cur ) )
+} &&
+complete -F _userdel userdel
+
+have chage &&
+_chage()
+{
+	local cur prev split=false
+
+	COMPREPLY=()
+	cur=`_get_cword`
+	prev=${COMP_WORDS[COMP_CWORD-1]}
+
+	_split_longopt && split=true
+
+	case "$prev" in
+		-d|--lastday|-E|--expiredate|-h|--help|-I|--inactive|-m|--mindays|-M|--maxdays|-W|--warndays)
+			return 0
+			;;
+	esac
+
+	$split && return 0
+
+	if [[ "$cur" == -* ]]; then
+		COMPREPLY=( $( compgen -W '-d --lastday -E --expiredate \
+			-h --help -I --inactive -l --list -m --mindays \
+			-M --maxdays -W --warndays' -- $cur ) )
+		return 0
+	fi
+
+	COMPREPLY=( $( compgen -u -- $cur ) )
+} &&
+complete -F _chage chage
+
+have passwd &&
+_passwd()
+{
+	local cur prev
+
+	COMPREPLY=()
+	cur=`_get_cword`
+	prev=${COMP_WORDS[COMP_CWORD-1]}
+
+	case "$prev" in
+		-n|-x|-w|-i|-\?|--help|--usage)
+			return 0
+			;;
+	esac
+
+	if [[ "$cur" == -* ]]; then
+		COMPREPLY=( $( compgen -W '-k -l --stdin -u -d -n -x -w -i -S \
+			-? --help --usage' -- $cur ) )
+		return 0
+	fi
+
+	COMPREPLY=( $( compgen -u -- $cur ) )
+} &&
+complete -F _passwd passwd
+
+have chpasswd &&
+_chpasswd()
+{
+	local cur prev split=false
+
+	COMPREPLY=()
+	cur=`_get_cword`
+	prev=${COMP_WORDS[COMP_CWORD-1]}
+
+	_split_longopt && split=true
+
+	case "$prev" in
+		-c|--crypt)
+			COMPREPLY=( $( compgen -W 'DES MD5 NONE SHA256 SHA512' \
+				-- $cur ) )
+			return 0
+			;;
+		-s|--sha-rounds)
+			return 0
+			;;
+	esac
+
+	$split && return 0
+
+	if [[ "$cur" == -* ]]; then
+		COMPREPLY=( $( compgen -W '-c --crypt-method -e --encrypted \
+			-h --help -m --md5 -s --sha-rounds' -- $cur ) )
+		return 0
+	fi
+} &&
+complete -F _chpasswd chpasswd
+
+have newusers &&
+_newusers()
+{
+	local cur prev split=false
+
+	COMPREPLY=()
+	cur=`_get_cword`
+	prev=${COMP_WORDS[COMP_CWORD-1]}
+
+	_split_longopt && split=true
+
+	case "$prev" in
+		-c|--crypt)
+			COMPREPLY=( $( compgen -W 'DES MD5 NONE SHA256 SHA512' \
+				-- $cur ) )
+			return 0
+			;;
+		-s|--sha-rounds)
+			return 0
+			;;
+	esac
+
+	$split && return 0
+
+	if [[ "$cur" == -* ]]; then
+		COMPREPLY=( $( compgen -W '-c --crypt-method --r --system \
+			-s --sha-rounds' -- $cur ) )
+		return 0
+	fi
+
+	_filedir
+} &&
+complete -F _newusers $filenames newusers
+
+have pwck &&
+_pwck()
+{
+	local cur
+
+	COMPREPLY=()
+	cur=`_get_cword`
+
+	if [[ "$cur" == -* ]]; then
+		COMPREPLY=( $( compgen -W '-q -r -s' -- $cur ) )
+		return 0
+	fi
+
+	_filedir
+} &&
+complete -F _pwck $filenames pwck
+
+have groupadd &&
+_groupadd()
+{
+	local cur prev split=false
+
+	COMPREPLY=()
+	cur=`_get_cword`
+	prev=${COMP_WORDS[COMP_CWORD-1]}
+
+	_split_longopt && split=true
+
+	# TODO: if -o/--non-unique is given, could complete on existing gids
+	#       with -g/--gid
+
+	case "$prev" in
+		-g|--gid|-K|--key|-p|--password)
+			return 0
+			;;
+	esac
+
+	$split && return 0
+
+	if [[ "$cur" == -* ]]; then
+		COMPREPLY=( $( compgen -W '-f --force -g --gid -h --help \
+			-K --key -o --non-unique -p --password -r --system' \
+			-- $cur ) )
+		return 0
+	fi
+} &&
+complete -F _groupadd groupadd
+
+have groupmod &&
+_groupmod()
+{
+	local cur prev split=false
+
+	COMPREPLY=()
+	cur=`_get_cword`
+	prev=${COMP_WORDS[COMP_CWORD-1]}
+
+	_split_longopt && split=true
+
+	# TODO: if -o/--non-unique is given, could complete on existing gids
+	#       with -g/--gid
+
+	case "$prev" in
+		-g|--gid|-h|--help|-n|--new-name|-p|--password)
+			return 0
+			;;
+	esac
+
+	$split && return 0
+
+	if [[ "$cur" == -* ]]; then
+		COMPREPLY=( $( compgen -W '-g --gid -h --help -n --new-name \
+			-o --non-unique -p --password' -- $cur ) )
+		return 0
+	fi
+
+	[ -n "$bash205" ] && COMPREPLY=( $( compgen -g -- $cur ) )
+} &&
+complete -F _groupmod groupmod
+
+[ -n "$bash205" ] && complete -g groupdel
+
+have newgrp &&
+_newgrp()
+{
+	COMPREPLY=()
+	if [[ "`_get_cword`" == "-" ]]; then
+		COMPREPLY=( - )
+	fi
+} &&
+complete ${bash205:+-g} -F _newgrp newgrp
+
+have gpasswd &&
+_gpasswd()
+{
+	local cur prev
+
+	COMPREPLY=()
+	cur=`_get_cword`
+	prev=${COMP_WORDS[COMP_CWORD-1]}
+
+	case "$prev" in
+		-a|-d|-A|-M)
+			COMPREPLY=( $( compgen -u -- $cur ) )
+			return 0
+			;;
+	esac
+
+	if [[ "$cur" == -* ]]; then
+		COMPREPLY=( $( compgen -W '-a -d -r -R -A -M' -- $cur ) )
+		return 0
+	fi
+
+	[ -n "$bash205" ] && COMPREPLY=( $( compgen -g -- $cur ) )
+} &&
+complete -F _gpasswd gpasswd
+
+have groupmems &&
+_groupmems()
+{
+	local cur prev
+
+	COMPREPLY=()
+	cur=`_get_cword`
+	prev=${COMP_WORDS[COMP_CWORD-1]}
+
+	case "$prev" in
+		-a|-d)
+			COMPREPLY=( $( compgen -u -- $cur ) )
+			return 0
+			;;
+		-g)
+			[ -n "$bash205" ] && \
+				COMPREPLY=( $( compgen -g -- $cur ) )
+			return 0
+			;;
+	esac
+
+	if [[ "$cur" == -* ]]; then
+		COMPREPLY=( $( compgen -W '-a -d -p -g -l' -- $cur ) )
+		return 0
+	fi
+} &&
+complete -F _groupmems groupmems
+
+have grpck &&
+_grpck()
+{
+	local cur
+
+	COMPREPLY=()
+	cur=`_get_cword`
+
+	if [[ "$cur" == -* ]]; then
+		COMPREPLY=( $( compgen -W '-r -s' -- $cur ) )
+		return 0
+	fi
+
+	_filedir
+} &&
+complete -F _grpck $filenames grpck
+
+have vipw || have vigr &&
+_vipw()
+{
+	local cur prev
+
+	COMPREPLY=()
+	cur=`_get_cword`
+	prev=${COMP_WORDS[COMP_CWORD-1]}
+
+	case "$prev" in
+		-h|--help)
+			return 0
+			;;
+	esac
+
+	if [[ "$cur" == -* ]]; then
+		COMPREPLY=( $( compgen -W '-g --group -h --help -p --passwd \
+			-q --quiet -s --shadow' -- $cur ) )
+		return 0
+	fi
+} &&
+complete -F _vipw vipw vigr
+
+have faillog &&
+_faillog()
+{
+	local cur prev split=false
+
+	COMPREPLY=()
+	cur=`_get_cword`
+	prev=${COMP_WORDS[COMP_CWORD-1]}
+
+	_split_longopt && split=true
+
+	case "$prev" in
+		-h|--help|-l|--lock-time|-m|--maximum|-t|--time)
+			return 0
+			;;
+		-u|--user)
+			COMPREPLY=( $( compgen -u -- $cur ) )
+			return 0
+			;;
+	esac
+
+	$split && return 0
+
+	if [[ "$cur" == -* ]]; then
+		COMPREPLY=( $( compgen -W '-a --all -h --help -l --lock-time \
+			-m --maximum -r --reset -t --time -u --user' -- $cur ) )
+		return 0
+	fi
+} &&
+complete -F _faillog faillog
+
+have lastlog &&
+_lastlog()
+{
+	local cur prev split=false
+
+	COMPREPLY=()
+	cur=`_get_cword`
+	prev=${COMP_WORDS[COMP_CWORD-1]}
+
+	_split_longopt && split=true
+
+	case "$prev" in
+		-b|--before|-h|--help|-t|--time)
+			return 0
+			;;
+		-u|--user)
+			COMPREPLY=( $( compgen -u -- $cur ) )
+			return 0
+			;;
+	esac
+
+	$split && return 0
+
+	if [[ "$cur" == -* ]]; then
+		COMPREPLY=( $( compgen -W '-b --before -h --help -t --time \
+			-u --user' -- $cur ) )
+		return 0
+	fi
+} &&
+complete -F _lastlog lastlog

-- 
bash-completion



More information about the Bash-completion-commits mailing list