_partx_module()
{
	local cur prev OPTS OUTPUT
	COMPREPLY=()
	OUTPUT="NR START END SECTORS SIZE NAME UUID TYPE FLAGS SCHEME"
	cur="${COMP_WORDS[COMP_CWORD]}"
	prev="${COMP_WORDS[COMP_CWORD-1]}"
	case $prev in
		'-n'|'--nr')
			return 0
			;;
		'-o'|'--output')
			# FIXME: how to append to a string with compgen?
			compopt -o nospace
			COMPREPLY=( $(compgen -W "$OUTPUT" -S ',' -- $cur) )
			return 0
			;;
		'-t'|'--type')
			# FIXME: some command should list type libblkid knows.
			COMPREPLY=( $(compgen -W "aix bsd dos gpt mac minix sgi solaris_x86 sun ultrix unixware" -- $cur) )
			return 0
			;;
		'-h'|'--help'|'-V'|'--version')
			return 0
			;;
	esac
	case $cur in
		-*)
			OPTS="--add --delete --show --update --bytes --noheadings --nr --output --pairs --raw --type --verbose --help --version"
			COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
			return 0
			;;
	esac
	COMPREPLY=( $(compgen -W "$(lsblk -pnro name)" -- $cur) )
	return 0
}
complete -F _partx_module partx
