# shellcheck shell=bash
# shellcheck disable=SC2034,SC2207
# Bash Maven completion

_mvn() {
	local cmds cur colonprefixes
	cmds="clean validate compile test package integration-test   \
      verify install deploy test-compile site generate-sources  \
      process-sources generate-resources process-resources      \
      eclipse:eclipse eclipse:add-maven-repo eclipse:clean      \
      idea:idea -DartifactId= -DgroupId= -Dmaven.test.skip=true \
      -Declipse.workspace= -DarchetypeArtifactId=               \
      netbeans-freeform:generate-netbeans-project               \
      tomcat:run tomcat:run-war tomcat:deploy jboss-as:deploy   \
      versions:display-dependency-updates                       \
      versions:display-plugin-updates dependency:analyze        \
      dependency:analyze-dep-mgt dependency:resolve             \
      dependency:sources dependency:tree release:prepare        \
      release:rollback release:perform --batch-mode"

	COMPREPLY=()
	cur=${COMP_WORDS[COMP_CWORD]}
	# Work-around bash_completion issue where bash interprets a colon
	# as a separator.
	# Work-around borrowed from the darcs work-around for the same
	# issue.
	colonprefixes=${cur%"${cur##*:}"}
	COMPREPLY=($(compgen -W "$cmds" -- "$cur"))
	local i=${#COMPREPLY[*]}
	while [ "$((--i))" -ge 0 ]; do
		COMPREPLY[i]=${COMPREPLY[i]#"$colonprefixes"}
	done

	return 0
} \
	&& complete -F _mvn mvn
