This is an automated email from the git hooks/post-receive script. ebourg-guest pushed a commit to branch master in repository maven2.
commit aca256436ce72a63c38ac2ffe285d20226989959 Author: Ludovic Claude <[email protected]> Date: Sat Jul 11 23:54:42 2009 +0000 Improve command line completion. --- debian/bash_completion.d/maven2 | 744 ++++++++++++++++++++++++++++++++++++---- debian/changelog | 1 + 2 files changed, 687 insertions(+), 58 deletions(-) diff --git a/debian/bash_completion.d/maven2 b/debian/bash_completion.d/maven2 index b1547ed..1b63e60 100644 --- a/debian/bash_completion.d/maven2 +++ b/debian/bash_completion.d/maven2 @@ -1,66 +1,694 @@ -_mvn() -{ - local cur prev opts - COMPREPLY=() - cur="${COMP_WORDS[COMP_CWORD]}" - prev="${COMP_WORDS[COMP_CWORD-1]}" - - # phases for the default lifecycle - default_phases="validate - initialize - generate-sources - process-sources - generate-resources - process-resources - compile - process-classes - generate-test-sources - process-test-sources - generate-test-resources - process-test-resources - test-compile - process-test-classes - test - package - pre-integration-test - integration-test - post-integration-test - verify - install - deploy" - - # phases for the clean lifecycle - clean_phases="pre-clean - clean - post-clean" - - # phases for the site lifecycle - site_phases="pre-site - site - post-site - site-deploy" - - opts="--file --debug --batch-mode --lax-checksums --strict-checksums --check-plugin-updates --define --errors --fail-at-end --fail-fast --fail-never --help --non-recursive --no-plugin-registry --no-plugin-updates --offline --activate-profiles --quiet --reactor --settings --update-snapshots --update-plugins --version ${default_phases} ${clean_phases} ${site_phases}" - - if [[ ${cur} == -* ]] ; then - COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) - return 0 +# Programmable completion for the Maven mvn command under bash. Source +# this file (or on some systems add it to ~/.bash_completion and start a new +# shell) and bash's completion mechanism will know all about mvn's options! +# +# Copyright (C) 2009, Ludovic Claude <[email protected]> +# Base on git completion script, Copyright (C) 2006,2007 Shawn O. Pearce <[email protected]> +# Distributed under the GNU General Public License, version 2.0. + +__mvnopts="--also-make --also-make-dependents --file --debug --batch-mode --lax-checksums --strict-checksums --check-plugin-updates --define + --errors --encrypt-master-password --encrypt-password --fail-at-end --fail-fast --fail-never --help --non-recursive --no-plugin-registry + --no-plugin-updates --offline --activate-profiles --projects --quiet --reactor --resume-from --settings --global-settings --update-snapshots + --update-plugins --version --show-version" + +__mvnoptsWithArg="--file|--define|--encrypt-master-password|--encrypt-password|--resume-from|--settings|--global-settings|--activate-profiles|--projects" + +__mvnparams="-Dmaven.test.skip=true -Dsurefire.useFile=false -Dmaven.surefire.debug -Xdebug -Xnoagent -Djava.compiler=NONE + -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=y -Dverbose -Dmaven.test.failure.ignore=true" + +__mvnpackaging="pom jar maven-plugin ejb war ear rar par" +__mvnclassifiers="sources test-jar" + +# phases for the default lifecycle +__mvndefault_phases="validate + initialize + generate-sources + process-sources + generate-resources + process-resources + compile + process-classes + generate-test-sources + process-test-sources + generate-test-resources + process-test-resources + test-compile + process-test-classes + test + package + pre-integration-test + integration-test + post-integration-test + verify + install + deploy" + +# phases for the clean lifecycle +__mvnclean_phases="pre-clean + clean + post-clean" + +# phases for the site lifecycle +__mvnsite_phases="pre-site + site + post-site + site-deploy" + +__mvnphases="${__mvndefault_phases} ${__mvnclean_phases} ${__mvnsite_phases}" + +# core plugin targets +__mvncore_plugins="clean:clean + clean:help + compiler:compile + compiler:testCompile + compiler:help + deploy:deploy + deploy:deploy-file + deploy:help + install:install + install:install-file + install:help + resources:resources + resources:testResources + resources:copy-resources + resources:help + site:site + site:deploy + site:run + site:stage + site:stage-deploy + site:attach-descriptor + site:jar + site:help + surefire:test + surefire:help + verifier:verify + verifier:help" + +# packaging plugin targets +__mvnpackaging_plugins="ear:ear + ear:generate-application-xml + ear:help + jar:jar + jar:test-jar + jar:sign + jar:sign-verify + jar:help + rar:rar + rar:help + war:war + war:exploded + war:inplace + war:manifest + war:help + shade:shade + shade:help" + +# reporting plugin targets +__mvnreporting_plugins="changelog:changelog + changelog:dev-activity + changelog:file-activity + changelog:help + changes:announcement-mail + changes:announcement-generate + changes:changes-report + changes:jira-report + changes:changes-validate + changes:help + checkstyle:checkstyle + checkstyle:check + checkstyle:help + doap:generate + doap:help + docck:check + docck:help + javadoc:javadoc + javadoc:test-javadoc + javadoc:aggregate + javadoc:test-aggregate + javadoc:jar + javadoc:test-jar + javadoc:help + jxr:jxr + jxr:test-jxr + jxr:help + pmd:pmd + pmd:cpd + pmd:check + pmd:cpd-check + pmd:help + project-info-reports:cim + project-info-reports:dependencies + project-info-reports:dependency-convergence + project-info-reports:dependency-management + project-info-reports:index + project-info-reports:issue-tracking + project-info-reports:license + project-info-reports:mailing-list + project-info-reports:plugin-management + project-info-reports:project-team + project-info-reports:scm + project-info-reports:summary + project-info-reports:help + surefire-report:report + surefire-report:report-only + surefire-report:help" + +# tools plugin targets +__mvntools_plugins="ant:ant + ant:clean + ant:help + antrun:run + antrun:help + archetype:create + archetype:generate + archetype:create-from-project + archetype:crawl + archetype:help + assembly:assembly + assembly:directory + assembly:directory-single + assembly:single + assembly:help + dependency:copy + dependency:copy-dependencies + dependency:unpack + dependency:unpack-dependencies + dependency:resolve + dependency:list + dependency:sources + dependency:resolve-plugins + dependency:go-offline + dependency:purge-local-repository + dependency:build-classpath + dependency:analyze + dependency:analyze-dep-mgt + dependency:tree + dependency:help + enforcer:enforce + enforcer:display-info + enforcer:help + gpg:sign + gpg:sign-and-deploy-file + gpg:help + help:active-profiles + help:all-profiles + help:describe + help:effective-pom + help:effective-settings + help:evaluate + help:expressions + help:system + invoker:install + invoker:run + invoker:help + one:convert + one:deploy-maven-one-repository + one:install-maven-one-repository + one:maven-one-plugin + one:help + patch:apply + patch:help + pdf:pdf + pdf:help + plugin:descriptor + plugin:report + plugin:updateRegistry + plugin:xdoc + plugin:addPluginArtifactMetadata + plugin:helpmojo + plugin:help + release:clean + release:prepare + release:rollback + release:perform + release:stage + release:branch + release:help + reactor:resume + reactor:make + reactor:make-dependents + reactor:make-scm-changes + reactor:help + remote-resources:bundle + remote-resources:process + remote-resources:help + repository:bundle-create + repository:bundle-pack + repository:help + scm:branch + scm:validate + scm:add + scm:unedit + scm:export + scm:bootstrap + scm:changelog + scm:list + scm:checkin + scm:checkout + scm:status + scm:update + scm:diff + scm:update-subprojects + scm:edit + scm:tag + scm:help + source:aggregate + source:jar + source:test-jar + source:jar-no-fork + source:test-jar-no-fork + source:help + stage:copy + stage:help" + +# IDE plugin targets +__mvnide_plugins="eclipse:clean + eclipse:configure-workspace + eclipse:eclipse + eclipse:help + eclipse:install-plugins + eclipse:m2eclipse + eclipse:make-artifacts + eclipse:myeclipse + eclipse:myeclipse-clean + eclipse:rad + eclipse:rad-clean + eclipse:remove-cache + eclipse:to-maven + idea:clean + idea:help + idea:idea + idea:module + idea:project + idea:workspace" + +__mvnother_plugins=" + plexus:app + plexus:bundle-application + plexus:bundle-runtime + plexus:descriptor + plexus:runtime + plexus:service + jetty:run-war + jetty:run + cargo:start + cargo:stop + dbunit:export + dbunit:operation + hibernate3:hbm2cfgxml + hibernate3:hbm2ddl + hibernate3:hbm2doc + hibernate3:hbm2hbmxml + hibernate3:hbm2java + hibernate3:schema-export + hibernate3:schema-update" + +__mvnall_plugin_and_goals="${__mvncore_plugins} ${__mvnpackaging_plugins} ${__mvnreporting_plugins} ${__mvntools_plugins} + ${__mvnide_plugins} ${__mvnother_plugins}" +__mvnplugins=$(echo ${__mvnall_plugin_and_goals} | sed -re 's/:[^ \t]+/:\n/g' | sort -u | sed 's/[\s\n]//g') + +__mvncomp_1 () +{ + local c IFS=' '$'\t'$'\n' + for c in $1; do + case "$c$2" in + --*=*) printf %s$'\n' "$c$2" ;; + *.) printf %s$'\n' "$c$2" ;; + *) printf %s$'\n' "$c$2 " ;; + esac + done +} + +__mvncomp () +{ + local genOpt= + if [ "$1" == "-nospace" ]; then + genOpt="true" + shift + fi + local cur="${COMP_WORDS[COMP_CWORD]}" + if [ $# -gt 2 ]; then + cur="$3" + fi + case "$cur" in + -*=) + COMPREPLY=() + ;; + *) + local IFS=$'\n' + COMPREPLY=($(compgen -P "$2" \ + -W "$(__mvncomp_1 "$1" "$4")" \ + -- "$cur")) + ;; + esac +} + +__mvnlist_projects () +{ + local poms=$(find . -name pom.xml -print) + echo $poms | while read -d ' ' POM; do + local DIR=$(dirname "$POM") + if [[ "$DIR" != "." ]]; then + echo "${DIR#./}" + fi + done +} + +__mvnlist_goals () +{ + local plugin=$1 + local pfx="" + if [[ "$2" ]]; then + pfx=$2 fi + echo ${__mvnall_plugin_and_goals} | tr ' ' '\n' | grep "$plugin" | sed "s/.*:/${pfx}/g" +} + +__mvnlist_poms () +{ + for x in `find -type f -name pom.xml -or -name *.pom` ; do echo ${x#./} ; done +} + +__mvnlist_prefix () +{ + local pfx=$1 IFS=' '$'\t'$'\n' + shift + local list=$@ + for c in $list; do + echo "$pfx$c" + done +} + +__mvnprefix_equals () +{ + local cur=$1 + local pfx="" + case "$COMP_WORDBREAKS" in + *=*) : great ;; + *) pfx="${cur%%=*}=" ;; + esac + echo $pfx +} + +__mvnprefix_colon () +{ + local cur=$1 + local pfx="" + case "$COMP_WORDBREAKS" in + *:*) : great ;; + *) pfx="${cur%%:*}:" ;; + esac + echo $pfx +} + +__mvnprefix_comma () +{ + local cur=$1 + local pfx="" + case "$COMP_WORDBREAKS" in + *,*) : great ;; + *) pfx="${cur%%,*}," ;; + esac + echo $pfx +} + +__mvnplugin_help () +{ + local plugin=$1 + local cur="${COMP_WORDS[COMP_CWORD]}" + cur="${cur#-D}" + case "${cur}" in + goal=*) + __mvncomp "$(__mvnlist_goals $plugin)" "$(__mvnprefix_equals $cur)" "${cur#*=}" + ;; + *) + __mvncomp "detail lineLength= indentSize= $(__mvnlist_goals $plugin 'goal=')" "-D" "${cur}" + ;; + esac +} + +__mvnhelp_describe () +{ + local cur="${COMP_WORDS[COMP_CWORD]}" + cur="${cur#-D}" + case "${cur}" in + cmd=*:*) + local plugin="${cur#*=}" + plugin="${plugin%%:*}:" + __mvncomp "$(__mvnlist_goals $plugin)" "$(__mvnprefix_colon $cur)" "${cur#*:}" + ;; + cmd=*) + __mvncomp "${__mvnphases} ${__mvnall_plugin_and_goals}" "$(__mvnprefix_equals $cur)" "${cur#*=}" + ;; + plugin=*) + __mvncomp "org.apache.maven.plugins:maven-" "$(__mvnprefix_equals $cur)" "${cur#*=}" + ;; + groupId=*) + __mvncomp "org.apache.maven.plugins" "$(__mvnprefix_equals $cur)" "${cur#*=}" + ;; + artifactId=*) + __mvncomp "" "$(__mvnprefix_equals $cur)" "${cur#*=}" + ;; + *) + # present several cmd= options to block full completion and insertion of a space + __mvncomp "detail cmd=press cmd=tab plugin= groupId= artifactId=" "-D" "${cur}" + ;; + esac +} + +__mvndeploy_deploy () +{ + local cur="${COMP_WORDS[COMP_CWORD]}" + cur="${cur#-D}" + __mvncomp "altDeploymentRepository= skip=true updateReleaseInfo=true" "-D" "${cur}" +} + +__mvndeploy_deploy_file () +{ + local cur="${COMP_WORDS[COMP_CWORD]}" + cur="${cur#-D}" + case "${cur}" in + file=*) + COMPREPLY=( $( compgen -f -P "$(__mvnprefix_equals $cur)" -- "${cur#*=}" ) ) + ;; + pomFile=*) + __mvncomp "$(__mvnlist_poms)" "$(__mvnprefix_equals $cur)" "${cur#*=}" + ;; + packaging=*) + __mvncomp "${__mvnpackaging}" "$(__mvnprefix_equals $cur)" "${cur#*=}" + ;; + *) + local options="artifactId= classifier= description= file=press file=tab generatePom=false groupId= pomFile=press pomFile=tab repositoryId= + repositoryLayout=legacy uniqueVersion=false url= version=" + options="$options $(__mvnlist_prefix 'packaging=' ${__mvnpackaging} )" + __mvncomp "$options" "-D" "${cur}" + ;; + esac +} + +__mvnarchetype_generate () +{ + local cur="${COMP_WORDS[COMP_CWORD]}" + cur="${cur#-D}" + __mvncomp "archetypeArtifactId= archetypeCatalog= archetypeGroupId= archetypeRepository= archetypeVersion= basedir= goals= interactiveMode=" + "-D" "${cur}" +} + +__mvndependency_x_dependencies () +{ + local cur="${COMP_WORDS[COMP_CWORD]}" + cur="${cur#-D}" + case "${cur}" in + classifier=*) + __mvncomp "${__mvnclassifiers}" "$(__mvnprefix_equals $cur)" "${cur#*=}" + ;; + *) + __mvncomp "$(__mvnlist_prefix 'classifier=' ${__mvnclassifiers})" "-D" "${cur}" + ;; + esac +} + +__mvndependency_resolve () +{ + local cur="${COMP_WORDS[COMP_CWORD]}" + cur="${cur#-D}" + case "${cur}" in + classifier=*) + __mvncomp "${__mvnclassifiers}" "$(__mvnprefix_equals $cur)" "${cur#*=}" + ;; + *) + __mvncomp "$(__mvnlist_prefix 'classifier=' ${__mvnclassifiers}) excludeArtifactIds= excludeClassifiers= excludeGroupIds= + excludeScope= excludeTransitive=true excludeTypes= includeArtifactIds= includeClassifiers= includeGroupIds= includeScope= + includeTypes= markersDirectory= outputAbsoluteArtifactFilename= outputFile= outputScope=false overWriteIfNewer=false + overWriteReleases=true overWriteSnapshots=true silent=true type=" + "-D" "${cur}" + ;; + esac +} + +__mvndependency_purge_local_repository () +{ + local fuzziness="file version artifactId groupId" + local cur="${COMP_WORDS[COMP_CWORD]}" + cur="${cur#-D}" + case "${cur}" in + resolutionFuzziness=*) + __mvncomp "${fuzziness}" "$(__mvnprefix_equals $cur)" "${cur#*=}" + ;; + *) + __mvncomp "actTransitively=false exclude= reResolve=false verbose=true + $(__mvnlist_prefix 'resolutionFuzziness=' ${fuzziness})" + "-D" "${cur}" + ;; + esac +} + +__mvndependency_analyze () +{ + local cur="${COMP_WORDS[COMP_CWORD]}" + cur="${cur#-D}" + __mvncomp "ignoreNonCompile=true outputXML=true scriptableFlag= scriptableOutput=true verbose=true" "-D" "${cur}" +} - case "${prev}" in - "--file") - local pom_files=$(for x in `find -type f -name pom.xml` ; do echo ${x} ; done) - COMPREPLY=( $(compgen -W "${pom_files}" -- ${cur} )) - return 0 +__mvndependency_analyze_dep_mgt () +{ + local cur="${COMP_WORDS[COMP_CWORD]}" + cur="${cur#-D}" + __mvncomp "ignoreDirect=false" "-D" "${cur}" +} + +__mvndependency_tree () +{ + local tokens="whitespace standard extended" + local cur="${COMP_WORDS[COMP_CWORD]}" + cur="${cur#-D}" + case "${cur}" in + tokens=*) + __mvncomp "${tokens}" "$(__mvnprefix_equals $cur)" "${cur#*=}" + ;; + *) + __mvncomp "excludes= includes= outputFile= scope= verbose=true + $(__mvnlist_prefix 'tokens=' ${tokens})" + "-D" "${cur}" + ;; + esac +} + +__mvnrelease_prepare () +{ + local cur="${COMP_WORDS[COMP_CWORD]}" + cur="${cur#-D}" + __mvncomp "username= dryRun=true" "-D" "${cur}" +} + +__mvnscm_checkin () +{ + local versionType="branch tag revision" + local cur="${COMP_WORDS[COMP_CWORD]}" + cur="${cur#-D}" + case "${cur}" in + scmVersionType=*) + __mvncomp "${versionType}" "$(__mvnprefix_equals $cur)" "${cur#*=}" + ;; + *) + __mvncomp "username= message= passphrase= password= scmVersion= $(__mvnlist_prefix 'scmVersionType=' ${versionType})" "-D" "${cur}" + ;; + esac +} + +_mvn () +{ + local i prev c=1 cmd option optionArg=0 + COMPREPLY=() + + while [ $c -lt $COMP_CWORD ]; do + prev=$i + i="${COMP_WORDS[c]}" + c=$((++c)) + optionArg=0 + # skip option argument + if [[ $prev == @(${__mvnoptsWithArg}) ]]; then + optionArg=1 + continue; + fi + case "$i" in + --version|--help) return ;; + -*) option="$i" ;; + *) cmd="$i"; break ;; + esac + done + + if [[ ! $cmd && $option && ($optionArg == 0) ]]; then + case "$option" in + --file) + __mvncomp "$(__mvnlist_poms)" ;; - ${default_phases}) + --define) + __mvncomp "maven.test.skip=true" ;; - *) + --resume-from) + __mvncomp "$(__mvnlist_projects)" ;; - esac + --projects) + local cur="${COMP_WORDS[COMP_CWORD]}" + case "${cur}" in + *,*) + __mvncomp "$(__mvnlist_projects)" "$(__mvnprefix_comma $cur)" "${cur#*,}" + ;; + *) __mvncomp "$(__mvnlist_projects)" + ;; + esac + ;; + --settings|--global-settings) + COMPREPLY=( $( compgen -f -- $cur ) ) + ;; + --*) + COMPREPLY=() + ;; + esac + return + fi + + if [ -z "$cmd" ]; then + local cur="${COMP_WORDS[COMP_CWORD]}" + case "${cur}" in + -D*=*) COMPREPLY=() ;; + -*) __mvncomp "${__mvnopts} ${__mvnparams}" ;; + --*) __mvncomp "${__mvnopts}" ;; + *:*) + local plugin="${cur%%:*}:" + __mvncomp "$(__mvnlist_goals $plugin)" "$(__mvnprefix_colon $cur)" "${cur#*:}" + ;; + *) __mvncomp "${__mvnphases} ${__mvnall_plugin_and_goals}" ;; + esac + return + fi - COMPREPLY=($(compgen -W "${opts}" -- ${cur})) - return 0 + case "$cmd" in + *:help) + local plugin="${cmd%%:*}:" + __mvnplugin_help $plugin + ;; + help:describe) __mvnhelp_describe ;; + deploy:deploy) __mvndeploy_deploy ;; + deploy:deploy-file) __mvndeploy_deploy_file ;; + archetype:generate) __mvnarchetype_generate ;; + dependency:copy-dependencies) __mvndependency_x_dependencies ;; + dependency:unpack-dependencies) __mvndependency_x_dependencies ;; + dependency:resolve) __mvndependency_resolve ;; + dependency:resolve-plugins) __mvndependency_resolve ;; + dependency:source) __mvndependency_resolve ;; + dependency:go-offline) __mvndependency_resolve ;; + dependency:purge-local-repository) __mvndependency_purge_local_repository ;; + dependency:analyze) __mvndependency_analyze ;; + dependency:analyze-dep-mgt) __mvndependency_analyze_dep_mgt ;; + release:prepare) __mvnrelease_prepare ;; + scm:checkin) __mvnscm_checkin ;; + *) + ;; + esac } -complete -F _mvn mvn m2 + +complete -o default -o nospace -F _mvn mvn mvnDebug diff --git a/debian/changelog b/debian/changelog index 2c9e665..aab00dc 100644 --- a/debian/changelog +++ b/debian/changelog @@ -23,6 +23,7 @@ maven2 (2.2.0-1) experimental; urgency=low libmaven-jar-plugin-java, libmaven-resources-plugin-java, libmaven-shade-plugin-java and add a Recommends on those libraries. * Remove debian/META-INF as this information is now generated by the build. + * Improve command line completion. -- Ludovic Claude <[email protected]> Mon, 02 Mar 2009 15:04:20 +0000 -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/maven2.git _______________________________________________ pkg-java-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

