_nsenter_module()
{
	local cur prev OPTS
	COMPREPLY=()
	cur="${COMP_WORDS[COMP_CWORD]}"
	prev="${COMP_WORDS[COMP_CWORD-1]}"
	case $prev in
		'-t'|'--target')
			local PIDS
			PIDS=$(for I in /proc/[0-9]*; do echo ${I##"/proc/"}; done)
			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="--target
				--mount=
				--uts=
				--ipc=
				--net=
				--pid=
				--user=
				--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
