_nsenter_module()
{
	local cur prev OPTS
	COMPREPLY=()
	cur="${COMP_WORDS[COMP_CWORD]}"
	prev="${COMP_WORDS[COMP_CWORD-1]}"
	case $prev in
		'-S'|'--uid')
			COMPREPLY=( $(compgen -W "uid" -- $cur) )
			return 0
			;;
		'-G'|'--gid')
			COMPREPLY=( $(compgen -W "gid" -- $cur) )
			return 0
			;;
		'-t'|'--target')
			local PIDS
			PIDS=$(cd /proc && echo [0-9]*)
			COMPREPLY=( $(compgen -W "$PIDS" -- $cur) )
			return 0
			;;
		'-h'|'--help'|'-V'|'--version')
			return 0
			;;
	esac
	case $cur in
		'=')
			# FIXME: --root and --wd should use get only
			# directories as compgen output.  If $cur is
			# overwrote the same way as below in case segment
			# for $prev the command-line will get mangled.
			cur=${cur#=}
			;;
		-*)
			OPTS="
				--all
				--target
				--mount=
				--uts=
				--ipc=
				--net=
				--pid=
				--cgroup=
				--user=
				--setuid
				--setgid
				--preserve-credentials
				--root=
				--wd=
				--no-fork
				--help
				--version
			"
			COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
			return 0
			;;
	esac
	local IFS=$'\n'
	compopt -o filenames
	COMPREPLY=( $(compgen -f -- $cur) )
	return 0
}
complete -F _nsenter_module nsenter
