_lscpu_module()
{
	local cur OPTS_ALL
	COMPREPLY=()
	cur="${COMP_WORDS[COMP_CWORD]}"
	prev="${COMP_WORDS[COMP_CWORD-1]}"
	case $prev in
		'--extended='|'=')
			local prefix realcur OPTS
			cur=${cur#=}
			realcur="${cur##*,}"
			prefix="${cur%$realcur}"
			OPTS_ALL="CPU CORE SOCKET NODE
				BOOK DRAWER CACHE POLARIZATION ADDRESS
				CONFIGURED ONLINE MAXMHZ MINMHZ"
			for WORD in $OPTS_ALL; do
				if ! [[ $prefix == *"$WORD"* ]]; then
					OPTS="$WORD ${OPTS:-""}"
				fi
			done
			compopt -o nospace
			COMPREPLY=( $(compgen -P "$prefix" -W "$OPTS" -S ',' -- $realcur) )
			return 0
			;;
		'-h'|'--help'|'-V'|'--version')
			return 0
			;;
	esac
	case $cur in
		-*)
			OPTS_ALL="--all
				--online
				--offline
				--json
				--extended=
				--parse=
				--sysroot
				--hex
				--physical
				--output-all
				--help
				--version"
			COMPREPLY=( $(compgen -W "${OPTS_ALL[*]}" -- $cur) )
			return 0
			;;
	esac
	local IFS=$'\n'
	compopt -o filenames
	COMPREPLY=( $(compgen -f -- $cur) )
	return 0
}
complete -F _lscpu_module lscpu
