_lscpu_module()
{
	local cur OPTS
	COMPREPLY=()
	cur="${COMP_WORDS[COMP_CWORD]}"
	prev="${COMP_WORDS[COMP_CWORD-1]}"
	case $prev in
		'--extended'|'=')
			cur=${cur#=}
			# FIXME: how to append to a string with compgen?
			OPTS="CPU,
				CORE,
				SOCKET,
				NODE,
				BOOK,
				CACHE,
				POLARIZATION,
				ADDRESS,
				CONFIGURED,
				ONLINE,
				MMHZ"
			compopt -o nospace
			COMPREPLY=( $(compgen -W "$OPTS" -- $cur) )
			return 0
			;;
		'-h'|'--help'|'-V'|'--version')
			return 0
			;;
	esac
	case $cur in
		-*)
			OPTS="--all
				--online
				--offline
				--extended=
				--parse=
				--sysroot
				--hex
				--help
				--version"
			COMPREPLY=( $(compgen -W "${OPTS[*]}" -- $cur) )
			return 0
			;;
	esac
	local IFS=$'\n'
	compopt -o filenames
	COMPREPLY=( $(compgen -f -- $cur) )
	return 0
}
complete -F _lscpu_module lscpu
